gpt4 book ai didi

delphi - 在长循环中处理消息时如何最大限度地减少开销

转载 作者:行者123 更新时间:2023-12-03 15:16:40 27 4
gpt4 key购买 nike

我的 Delphi 程序中有一些很长但简单的循环,可能会循环数百万次并需要几秒钟的时间来执行。循环内部的代码非常快并且已经过优化。只是需要很长时间,因为它已经完成了很多次。

例如:

Screen.Cursor = crHourGlass;
R := FirstRecord;
while R <> nil do begin
{ do something simple with R.Value }
R := R.NextRecord;
end;
Screen.Cursor := crDefault;

现在我不希望我的程序无响应,所以我想在循环内添加一个Application.ProcessMessages。但我也希望添加的语句尽可能减慢我的循环速度。

我正在跟踪一个链接列表,因此我什至没有可用的计数变量,如果我想要间隔,则必须添加一个。或者我必须添加一个计时器,但需要最大限度地减少时间检查。

我应该如何实现这一点以最大限度地减少增加的开销?

<小时/>

结论:

现在,我正在做类似 APZ28 的回答。

但从长远来看,我应该实现某种线程来处理这个问题。感谢您指出这一点,因为我认为 Application.ProcessMessages 是唯一的方法。

最佳答案

您能否将工作循环放入一个线程中,从而释放主线程以进行 GUI 循环处理。

关于delphi - 在长循环中处理消息时如何最大限度地减少开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3402824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com