线程终止问题?线程用terminate()终止了,所创建的线程也停止工作了,可是任务管理器里面的线程数不恢复到线程启动前的数,为什么>?

半知702 2008-10-23 02:34:33

操作系统: WINDOWS2000
启动线程前任务管理器中的线程数为1,点击启动按扭,启动4个线程,线程工作中该进程的线程总数是5,用terminate()函数终止线程后,线程也停止工作了,可是线程总数还是5;然而,接下来再点击启动4个线程的按扭,该进程的线程总数为9,用terminate()函数终止线程后,线程数恢复到5,以后无论怎么操作都是保持5,除非程序退出再进;
小弟不明白问题出在哪里,恳请哪位先生能赐教!
...全文
281 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2008-10-27
  • 打赏
  • 举报
回复
只有主动退出是完全的。
shailen126 2008-10-24
  • 打赏
  • 举报
回复
用ExitThread()吧。。
LanQuark 2008-10-24
  • 打赏
  • 举报
回复
线程结束后, 还必须释放线程句柄(HTHREAD hThread = CreateThread(...))
如果你不需要线程结束信号量, 可以立即释放线程句柄Close(hThread)
只有线程返回和线程句柄释放后线程才真正消失
palmax 2008-10-24
  • 打赏
  • 举报
回复
拿 procexp 看看那四个线程是什么状态
Edward 2008-10-24
  • 打赏
  • 举报
回复
哎,还是新手问题,这个问题在这个论坛几乎天天见。

线程代码执行完毕,线程就结束了,没有十分必要的情况不要使用TerminateThread。

希望多看看书吧,线程和同步不是光靠写代码就能懂的。
jxb_memory 2008-10-23
  • 打赏
  • 举报
回复
terminate是强制终止线程的执行很多后继的工作都没有做,尽量不要这样,应该让线程自己结束。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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