一个在线连接数引发的Delphi线程安全(Thread Safe)问题

 Q:我在AP端的RemoteDataModule的Create時下了Form1.ClientConnect(1); 这一行,在Destroy时下了Form1.ClientConnect(-1);

在FORM1上放了一个LABEL用来做显示在线人数的一个Procedure  

procedure TForm1.ClientConnect(sCOUNT: Integer); begin FCOUNT:=FCOUNT+sCOUNT; Label1.Caption:=IntToStr(FCOUNT); //在客户端,有时只要一connected,就会当在那里不动, //但是只要把这一行注释起来,就沒问题了,不知是什么原因? end;
   A:>> Label1.Caption:=IntToStr(FCOUNT);

   问题就出在这一行上....

   是因为VCL的UI展现部分,并没有做到Thread Safe 的关系

  最简单的方式就是省略掉这一行...由 Form的事件去处理(例如放一个Timer去更新)

你可能感兴趣的:(一个在线连接数引发的Delphi线程安全(Thread Safe)问题)