线程终止后的TFileStream的free问题 ( 积分: 50 )

  • 主题发起人 主题发起人 huhuc
  • 开始时间 开始时间
H

huhuc

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个线程里使用了DownLoadFile:=TFileStream.Create
在主进程使用terminateThread(Tnewdown.Handle,0);来终止进程,
线程里使用了FreeOnTerminate:=true;
但是DownLoadFile仍然没有free,怎样才能让它free掉呢?
 
我在一个线程里使用了DownLoadFile:=TFileStream.Create
在主进程使用terminateThread(Tnewdown.Handle,0);来终止进程,
线程里使用了FreeOnTerminate:=true;
但是DownLoadFile仍然没有free,怎样才能让它free掉呢?
 
不能使用terminateThread
1.线程继承自TThread.
2.主线程subThread.Terminate;
3.线程定时检测。释放DownLoadFile并结束。
如果你非要如此,那么可以在使用把TFileStream的创建和释放都挪到主线程。
我觉得你对于多线程的一些基础知识都不了解。自己去翻翻书/网上找找资料,
 
我知道你说的意思,你说的方法确实可行。但是,subThread.Terminate;不能立即终止,
我现在希望立即终止。DownLoadFile我不希望它是一个全局变量,这不是一个好的OOP行为。
至于你认为,我对于多线程的一些基础知识都不了解。是因为FreeOnTerminate:=true;我理解错了吧,DELPHI我也是现学的,看的也是电子书,所以有些理解错误也是正常。
 
后退
顶部