W
wjing
Unregistered / Unconfirmed
GUEST, unregistred user!
我自己开发的一个多线程下载软件,使用了多线程+indy9.0.我程序运行的原理就是多线程的使用代理从一个网址下载东西.但是不知道为什么有时候线程会停止不动(假死).我想每隔一段时间就释放老线程并重新建立一个新的线程,但是现在问题出现了,在释放老的线程的时候 老是提示"线程错误 句柄无效".说明一下 就是我的多线程是使用list 列表保存的.
现在我想问的是 1.如何预防线程假死(timer 控件在indy的线程中无法运行);
2.如果上面问题没有很好的办法,怎么样才能预防错误.
我释放的代码如下 :
i:=Threadlist.count-1;
mythread:=Threadlist.item;
try
mythread.Terminate;//已经设置了 FreeOnTerminate := true;
finally
mythread.free;//这个有和没有都有错误
threadlist.delete(i);
end;
现在我想问的是 1.如何预防线程假死(timer 控件在indy的线程中无法运行);
2.如果上面问题没有很好的办法,怎么样才能预防错误.
我释放的代码如下 :
i:=Threadlist.count-1;
mythread:=Threadlist.item;
try
mythread.Terminate;//已经设置了 FreeOnTerminate := true;
finally
mythread.free;//这个有和没有都有错误
threadlist.delete(i);
end;