操作系统: WINDOWS2000
启动线程前任务管理器中的线程数为1,点击启动按扭,启动4个线程,线程工作中该进程的线程总数是5,用terminate()函数终止线程后,线程也停止工作了,可是线程总数还是5;然而,接下来再点击启动4个线程的按扭,该进程的线程总数为9,用terminate()函数终止线程后,线程数恢复到5,以后无论怎么操作都是保持5,除非程序退出再进;
  小弟不明白问题出在哪里,恳请哪位先生能赐教!

解决方案 »

  1.   

    terminate是强制终止线程的执行很多后继的工作都没有做,尽量不要这样,应该让线程自己结束。
      

  2.   

    哎,还是新手问题,这个问题在这个论坛几乎天天见。线程代码执行完毕,线程就结束了,没有十分必要的情况不要使用TerminateThread。希望多看看书吧,线程和同步不是光靠写代码就能懂的。
      

  3.   

    拿 procexp 看看那四个线程是什么状态
      

  4.   

    线程结束后, 还必须释放线程句柄(HTHREAD hThread = CreateThread(...))
    如果你不需要线程结束信号量, 可以立即释放线程句柄Close(hThread)
    只有线程返回和线程句柄释放后线程才真正消失