2012-01-25 43 views
1

CreateThread返回HANDLE對象需要由CloseHandleCreateThread的句柄泄漏

文檔被關閉指出The thread object remains in the system until the thread has terminated and all handles to it have been closed through a call to CloseHandle.

我的問題是如果返回變量不使用會發生什麼。它等於不關閉返回的句柄,並因爲這與處理泄漏?這是對的嗎?

+0

避免希望仙女照顧它。如果一個winapi函數返回一個句柄,那麼釋放它就是你的工作。當然,你總是要檢查通話是否失敗。 –

+1

除非您需要等待線程在稍後階段退出,否則最簡單的方法是在調用CreateThread之後調用CloseHandle(hThread),然後您不必再擔心它。 – BrendanMcK

回答

3

它等於不關閉返回的句柄,因爲這與處理泄漏?這是對的嗎?

是的,您將泄露操作系統資源,這類似於當您有內存泄漏時泄漏內存。

參考:
MSDN Documentation

關閉一個線程句柄不終止關聯的線程或刪除線程對象。關閉進程句柄不會終止關聯的進程或刪除進程對象。要刪除線程對象,您必須終止線程,然後關閉線程的所有句柄。