本人在一个过程中调用了一个延时的过程,延时过程如下:
procedure Delay(msecs:integer);
var
FirstTickCount:longint;
begin
FirstTickCount:=GetTickCount;
repeat
Application.ProcessMessages;
until ((GetTickCount-FirstTickCount) >= Longint(msecs));
end;调用的过程如下:
objsocket:=tclientsocket.Create(application);
objsocket.Address:='192.168.0.99';
objsocket.ClientType:=ctBlocking;
objsocket.Port:=8889;
objsocket.Active:=true;
objsocket.OnConnect:=chatform.ClientSocket1Connect;
objsocket.OnRead:=chatform.clientSocketRead;
chatform.timer1.enabled:=false;
delay(2000);
为何在延时阶段,程序会一直执行此过程的代码,如上将会创建很多对象,不知道何故?
procedure Delay(msecs:integer);
var
FirstTickCount:longint;
begin
FirstTickCount:=GetTickCount;
repeat
Application.ProcessMessages;
until ((GetTickCount-FirstTickCount) >= Longint(msecs));
end;调用的过程如下:
objsocket:=tclientsocket.Create(application);
objsocket.Address:='192.168.0.99';
objsocket.ClientType:=ctBlocking;
objsocket.Port:=8889;
objsocket.Active:=true;
objsocket.OnConnect:=chatform.ClientSocket1Connect;
objsocket.OnRead:=chatform.clientSocketRead;
chatform.timer1.enabled:=false;
delay(2000);
为何在延时阶段,程序会一直执行此过程的代码,如上将会创建很多对象,不知道何故?
Lock
do...
Unlock