有关Application.ProcessMessages;的问题,请大家帮忙(50分)

  • 主题发起人 主题发起人 yhl1118
  • 开始时间 开始时间
Y

yhl1118

Unregistered / Unconfirmed
GUEST, unregistred user!
我们在程序中经常加入这个语句,为了能响应其他消息,尤其在循环语句中,如:
for i := 0 to 10000 do
begin
//...
Application.ProcessMessages;
end;
但是这样好象cpu的占用率变成了100,就是在一个线程中也是如此,有没有其他方法。
 
好像有一个sleep api函数的记不清啦,查一查帮助看看
 
Sleep不提供处理外界消息的功能。
 
不过,Application.ProcessMessage似乎可以。
CPU不应该占用太多啊。
 
确实达到了100%,有没有好的解决方法?
 
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for i := 0 to 1000000000 do
begin
//...
Application.ProcessMessages;
if Application.Terminated then
Exit;
Sleep(5);
end;
end;
 
多人接受答案了。
 
后退
顶部