我在我的软件中使用TTimer,它应该永远运行24/7.我的软件中没有任何地方禁用或停止运行计时器.它的主要功能是更新表的值.它在软件运行后立即启动,从那时起,TTimer就不应该停止.然而,在跑了一个多月后,TTimer神秘地停止了运行.该软件在Windows 7上运行,该软件在Delphi 2010 XE上开发.我搜索了我的代码以查看可能导致它的原因,但我无法弄清楚是什么.
Timer1.Enabled:=true;
Run Code Online (Sandbox Code Playgroud)
这就是计时器的启动方式.
更新:经过一些调查,我发现TTimer从未停止,但还有另一个问题.TForm上的TStringGrid表只是不显示任何更新的值.此外,我还发现我用于存储数据项列表的我的TList列表正在以某种方式被破坏列表变空.但是,只有在程序启动时才加载列表中的数据项.
每次我更新表单上的TStringGrid时,我都会运行从TL到count-1位置的TList项.因此,如果内存中的TList中没有项目,我的代码只会跳过显示部分,因此TStringGrid上没有任何更新.
就像是:
If (List.count>0) then
begin
//Display values in TStringGrid;
end;
Run Code Online (Sandbox Code Playgroud)
但是当软件仍在运行时,我能够将文件列表从文件重新加载到TList列表中,我的软件开始像它想象的那样工作.
我不想说程序员最讨厌最丑陋的词.我恐怕可能有内存泄漏.有谁这么认为?
任何帮助将不胜感激.谢谢.
| 归档时间: |
|
| 查看次数: |
2910 次 |
| 最近记录: |