Seb*_*ian 4 delphi memory-management cpu-usage delphi-2010 idle-processing
我正在做一个delphi应用程序,它将在我的电脑24/7后台运行,并将检查是否必须执行某些操作,等待30分钟再次检查,依此类推.
如何确保应用程序不会因为一直运行而使CPU或内存过载.
关于定时器的答案是很好的解决方案,我补充一点:确保定时器事件或后续调用的过程检查忙.即如果您醒来,请确保在开始新批次之前完成最后一批.当事情顺利进行时很容易错过,然后你就会有事情得到备份,整个系统在早上8点就会陷入僵局,因为午夜发生了一些不好的事情,现在已经有16个电话堆叠起来(或线程) ,过程等..).
所以写这样的计时器事件如下:
OnMyTimer...
begin
MyTimer.Enabled := false;
try
DoSomethingForALongTime; // Usually runs in 45 seconds, but sometimes takes 45 minutes!
finally
MyTimer.Enabled := true; // and (SomeAbortRequest = False) and (SomeHorribleErrorCount = 0);
end;
end;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4988 次 |
最近记录: |