procdure Tmythread.execute;
var
t1,t2:Dword;
begin
t1:=gettickcount;
t2:=gettickcount;
while ((t2-t1)<10000) do
begin
...
t2:=gettickcount;
sleep(500);
end;
end;
procedure TimerProc(hWindow:HWND; uMsg:UINT; idEvent:UINT; dwTime:DWORD);stdcall;
begin
Showmessage('a');
end;
var Msg: TMsg;
begin
SetTimer(HWND(nil),1,3000,@TimerProc);
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg); //〈〈〈add
end;
KillTimer(HWND(nil),1);
end.
procedure xxx.Execute;
begin
while not Terminated do
begin
if FTimerEvent := TEVent.WaitFor(FInterval) = wrTimeout then
Synchronize(DoTimer); 你爱挂哪挂哪
end;
end;