CreateThread,是WIN32 最直接創(chuàng)建的thread API函數(shù).但是如果在線程回調(diào)(CALLBACK)函數(shù)中使用一些標(biāo)準(zhǔn)C的函數(shù),當(dāng)線程正常退出的時候,即使你釋放了所有用戶資源,仍然會有資源的泄漏的隱患。主要原因是線程中都需要有額外的資源,來保證一些標(biāo)準(zhǔn)C函數(shù)的線程安全,這些資源的創(chuàng)建是在C的標(biāo)準(zhǔn)函數(shù)被調(diào)用的時候,但是在thread退出的時候,沒法通過正常途徑釋放。
如果在你的回調(diào)函數(shù)中使用一些標(biāo)準(zhǔn)C函數(shù),最好使用_beginthreadex,_endthreadex替換掉原來的CreateThread, _endthreadex 會釋放這些資源,或者AfxBeginThread(里面有調(diào)用_beginthreadex,_endthreadex)
具體原因查看《程序員的修養(yǎng),編譯與鏈接》一書。