CWinThread類,使用後要不要使用CloseHandle釋放核心

CWinThread類,使用後要不要使用CloseHandle釋放核心
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

在VC 中用AfxBeginThread()開啟執行緒的時候,返回的是CWinThead類的指標。但是使用後是否應該用CloseHandle釋放核心資源呢?

在《Windows核心程式設計》中說在使用ExitThread()函式終止執行緒的時候雖然系統資源會被清理掉,但是C/C 資源(如C 類資源)不會被銷燬。使用TerminateThread函式終止執行緒時,該執行緒的堆疊資源是不會被銷燬的。並建議最好的使執行緒結束的方式就是使執行緒函式正常退出。但是這裡不知道是否要用CloseHandle來關閉系統核心物件,也就是控制代碼。以及是否需要delete CWinThread指標。

經查MSDN,在CWinThread類中有個m_bAutoDelete的變數,該變數是線上程結束的時候是否Delete掉自己,而這個值預設是設為TRUE的。delete的時候是會執行該類的解構函式的,在解構函式中應該是會銷燬系統資源的。如下圖,m_bAutoDelete的值是1。

當執行緒結束的時候,在檢視CWinThread類中的值,發現是亂碼之類的,這時其實該CWndThread指標所指的物件已經被delete掉了。如下圖:

相關文章

程式語言 最新文章