长时间运行线程会死掉(在线等)(100分)

  • 主题发起人 feiyan_918
  • 开始时间
F

feiyan_918

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了个线程程序,里面包含两个线程,线程之间没有相互调用,每10秒钟去进行一个操作,可如果程序运行一个晚上的话,到第二天这个程序就会死掉,想请问一下,都又那些方面的原因,谢谢!
 
检查一下线程是否引用了非线程安全的单元
包含间接引用
 
"非线程安全的单元"是指包含了VCL非线程安全控件的单元吗
 
TClientDataSet 应该是线程安全控件吧
其他还有什么原因,可能造成线程死锁的问题,请高手指点,急!急!急!
 
能把代码贴出来看一下?
每10秒钟进行一次操作,是不是时间发生器的问题?
 
时间发生器的问题?什么意思啊,
你想要那块的代码啊
 
内存泄漏,可能有未释放的对象。
 
是不是还有其他情况,或者给咱们再说详细点,差不多就散分啊~!
 
同意楼上,先检查内存是否泄漏,因为是长时间之后才发生问题,可能是泄漏累积造成的。
 
那我应该怎么检查,本人是个莱鸟,请高手指点
 
这种情况基本上都是内存泄漏引起的,主要原因就是反复创建对象而未释放,最后把可用内存都消耗完了导致程序死掉(有可能会死机),还有一种情况就是线程互锁导致程序死掉(一般不会死机)。你的情况看来比较象内存泄漏,因为程序运行较长时间才死掉。重点检查你创建的对象看有没有反复创建而未释放的对象。
 
请大家给推荐个测试软件,能测内内存泄露的,最好是免费的,谢谢
 
线程开始
var
i:integer;
begin

i:=0;
while i<2do

begin

sleep(10000);//暂停10秒
线程代码,要退出把I值赋值2
i:=赋值2;//重新赋变量i的值为0,形成死循环
end;

//////////////////////
让线程一直运行着
 
多人接受答案了。
 
http://www.delphibbs.com/keylife/iblog_show.asp?xid=22834
 
顶部