线程需要关闭吗?怎么关闭?急!!

martinhan 2003-11-27 11:31:09
线程在执行完毕后需要释放吗?
...全文
295 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoqiang123 2003-11-27
  • 打赏
  • 举报
回复
某些紧急情况下,你可以使用TerminateThread()来终止一个线程。但是,除非没有别的办法了,否则不要用它。
例如,当线程代码陷入死循环时。TerminateThread()的声明如下:
function TerminateThread(hThread:THandle;dwExitCode:DWORD);TThread的Handle属性可以作为第一个参数,因此,TerminateThread()常这样调用:
TerminateThread(MyHosedThread.Handle,0)
如果选择使用这个函数,应该考虑到它的负面影响。
首先,此函数在Windows NT与在Windows 95/98下并不相同。在Windows 95/98 下,这个函数能够自动清除线程所占用的栈;而在Windows NT下,在进程被终止前栈仍然保留。
其次,无论线程代码中是否有try...finally块,
这个函数都会使线程立即停止执行。这意味着,被线程打开的文件没有被关闭、由线程申请的
内存没有被释放等情况。而且,这个函数在终止线程的时候也不通知D L L,当D L L关闭时,这也容易出现问题

aiirii 2003-11-27
  • 打赏
  • 举报
回复
看你創建時的設置!
zblaoshu1979 2003-11-27
  • 打赏
  • 举报
回复
需要,要不会占用内存
RamjetZhang 2003-11-27
  • 打赏
  • 举报
回复
FreeOnTerminate := true/false;
martinhan 2003-11-27
  • 打赏
  • 举报
回复
是不是线程自动释放?

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧