csoapy 發表于 2006-8-19 9:48:25
看了幾個多線程的示例代碼,都是這么做的。
查了下MSDN,它說
CloseHandle時如果是被關的對象是線程的話也不會引起線程退出。
不明白。
song_09 發表于 2006-8-19 13:11:31
創建線程后會返回一個線程句柄,線程的使用記數為2,在你得到線程句柄后如果不對線程進行其他操作的話就通過CloseHandle()關閉該句柄,同時線程記數-1。線程執行退出時,記數也會減1,記數為0時,操作系統會釋放線程的句柄資源,因此,大多數情況下,創建完線程后都會關閉線程句柄。跟多詳細信息可以參考《windows核心編程》。
louifox 發表于 2006-8-19 13:14:42
關閉線程句柄不會引起線程結束,只是減少線程內核對象的引用計數。
hailongchang 發表于 2006-8-23 16:47:02
線程是一種內核對象,系統維護著每一個內核對象,當每個內核對象引用記數為0時,系統就從內存中釋放該對象,CloseHandle就是將該線程對象的引用記數減1