看了几个多线程的示例代码,都是这么做的。
查了下MSDN,它说CloseHandle时如果是被关的对象是线程的话也不会引起线程退出。
不明白。

解决方案 »

  1.   

    创建线程后会返回一个线程句柄,线程的使用记数为2,在你得到线程句柄后如果不对线程进行其他操作的话就通过CloseHandle()关闭该句柄,同时线程记数-1。线程执行退出时,记数也会减1,记数为0时,操作系统会释放线程的句柄资源,因此,大多数情况下,创建完线程后都会关闭线程句柄。跟多详细信息可以参考《windows核心编程》。
      

  2.   

    线程是一种内核对象,系统维护着每一个内核对象,当每个内核对象引用记数为0时,系统就从内存中释放该对象,CloseHandle就是将该线程对象的引用记数减1