关于afxbeginthread时WaitForMultipleObjects不起作用
生活随笔
收集整理的這篇文章主要介紹了
关于afxbeginthread时WaitForMultipleObjects不起作用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
afxbeginthread時,對這個方法蠻感興趣的,創建線程很方便,但是我注意了下,該函數返回的不是創建線程的句柄,而是cwndthread的指針對象,而我想用WaitForMultipleObjects等待線程返回,該怎么辦呢,cwndthread里有一個m_hThread對象,是創建線程的句柄.我以為這樣就可以了,但是在實際寫代碼中卻出現了很大的問題,WaitForMultipleObjects不起作用,我很郁悶,看了下cwndthread的結構以及實現代碼,才恍然大悟,原來,用afxbeginthread創建的線程在結束時,會自動釋放對象,關閉句柄,清理內存,這一切都是在cwndthread的析構函數里進行,不需要外界的干預,看了下說明
設置CWinThread成員變量m_bAutoDelete為FALSE,這樣當線程中止時線程對象不會被撤銷,因此仍然可以獲得線程句柄。
?注意:因為線程對象在線程中止時不能自動撤銷,所以必須由用戶進行撤銷。
?? if (m_pThread1 != NULL)
????{
????????delete m_pThread1;
????????m_pThread1 = NULL;
????}
總結
以上是生活随笔為你收集整理的关于afxbeginthread时WaitForMultipleObjects不起作用的全部內容,希望文章能夠幫你解決所遇到的問題。