2009-01-07 55 views
11

我想創建一個線程,然後立即調用CloseHandle並讓線程自己死掉,這樣我就不必在'原始'線程中做額外的清理工作了(不是那種清理很難本身,但這意味着我希望避免額外的簿記費用)。在線程終止之前調用CloseHandle()是否合理?

MSDN說在一個線程上調用CloseHandle()不會終止該線程,但我不清楚這是否意味着我真的可以做到這一點。

回答

20

不僅是合理的,而且它不是一個手柄泄漏。通常我會在創建線程後立即關閉它,除非我在別處需要它。

+0

+1,這樣你在使用AppVerifier時不會誤報。 – 2009-01-07 00:30:40

11

CreateThread函數使引用計數爲+2,CloseHandle僅使引用計數爲-1,當線程函數完成時,系統將引用計數爲-1。