AfxEndThread還是TerminateThread(記一次編程體會)?

    在MFC編程中想結束一個進程,我第一個想到的是TerminateThread。

    很快代碼就加了上去,但得不到我們想要的結果,通過調試查看TerminateThread的返回值,我們發現線程沒有被終止。於是上網搜索,論壇上有人說該函數要與closehandle函數配合使用,因爲要以免資源泄漏。

    很興奮,速度添加代碼。繼續跟蹤,線程還是沒有關掉......

   

    後來看到有人建議TerminateThread要慎用,我纔想起之前看到的AfxEndThread,因爲此函數只能通過線程本身調用終止,我覺得麻煩就不用了。其實後來想想,只要設定一個bool變量就可以了。當我想結束該線程時令bool爲false,然後在線程中判斷條件,符合即調用AfxEndThread即可。

    跟蹤,調試,結果不錯。開心。

 

    還有一點建議:不要混用WINDOWS   API,   CRT或MFC的線程函數!具體原理我還不懂。

 

    最後我想說的是,怕麻煩就別搞編程。

發佈了36 篇原創文章 · 獲贊 52 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章