delphi在主程序中延时

在主程序中延时,网上广为流传的是 GetTickCount();加 application.processmessages;

的空循环,这样去来的效果会是延时期间 CPU 耗用率为 100% ,而如果用 Sleep 会全世界都死掉.

只改了一句, CPU 耗用问题下来了![:D]

procedure Delay(msec:integer);

//延时函数,msec 为微秒(千分之1秒)

var

FirstTickCount : real;

begin

FirstTickCount := GetTickCount();

FirstTickCount := FirstTickCount + msec;

While FirstTickCount > GetTickCount() do

Application.HandleMessage; //关键在这里

end;

delay (5000); // 延时 5 秒