1、挂起,不占CPU sleep 2、不挂起,占cpu procedure Delay(msecs:integer); var FirstTickCount:longint; begin FirstTickCount:=GetTickCount; repeat Application.ProcessMessages; until ((GetTickCount-FirstTickCount) >= Longint(msecs)); end; 3、定时器 procedure timerfun(handle:Thandle;msg:word;identer:word;dwtime:longword);stdcall; begin showmessage(‘到点了‘); killtimer(handle,identer);//关闭定时器 end; //其中的identer是定时器的句柄 procedure TForm1.Button1Click(Sender: TObject); var identer:integer; begin identer:=settimer(0,0,2000,@timerfun); if identer=0 then exit; //定时器没有创建成功。 end; 4、不占CPU不挂起 function TForm1.HaveSigned(MaxWaitTime: Cardinal): Boolean; var I:Integer; var WaitedTime:Cardinal; begin WaitedTime:=0; while (WaitedTime<MaxWaitTime) do begin SleepEx(100,False); Inc(WaitedTime,100); Application.ProcessMessages ; end end;
时间: 2024-08-26 01:42:06