我有一個類Class
,其中有一個線程的成員屬性HANDLE handle
(我們可以假設它在此時設置爲NULL
)。在某種程度上,Class
中的方法使用CreateThread()
調度其自己的方法Class::threaded()
(使用該類本身外部的另一個函數,但這並不重要)。調用線程然後可以繼續在Class
之外的其他功能。誰負責調用CloseHandle()來處理線程
由於CloseHandle()
必須要求從CreateThread()
返回HANDLE
,我在想,如果從Class::threaded()
之前返回將是一個不錯的解決方案調用它。
由於您已將此標記爲C++,因此您應該使用_beginthread或_beginthreadex。請參閱'CreateThread'文檔:「調用C運行時庫(CRT)的可執行文件中的線程應該使用_beginthreadex和_endthreadex函數進行線程管理,而不是CreateThread和ExitThread;」 – Steve
這是上個世紀的建議。 CRT已經做了調整來解決這個問題,而不是必須支持線程池線程,你當然不能調用_beginthreadex。它現在在需要時即時分配線程本地數據。 –