CloseHandle的功能是關(guān)閉一個打開的對象句柄,該對象句柄可以是線程句柄,也可以是進程、信號量等其他內(nèi)核對象的句柄,而ExitThread的功能是終止一個線程,它所接受的參數(shù)是一個線程的退出碼。?
??
???? 通過調(diào)用CloseHandle可以告知系統(tǒng),已經(jīng)完成了對某一內(nèi)核對象的操作,該函數(shù)首先檢查調(diào)用進程的句柄表,來確認進程是否對該句柄所指向的對象有訪問權(quán),如果句柄無效則返回FALSE,如果有效,系統(tǒng)將得到該內(nèi)核對象的數(shù)據(jù)結(jié)構(gòu)的地址,把結(jié)構(gòu)中的使用計數(shù)成員減1,如果計數(shù)變?yōu)?,則將從內(nèi)核中釋放該內(nèi)核對象。?
??
???? 如果計數(shù)還未到0,就意味著還有其他的進程在使用這個內(nèi)核對象,那么它就不會被釋放。?
??
???? ExitThread是推薦使用的結(jié)束一個線程的方法,當調(diào)用該函數(shù)時,當前線程的棧被釋放,然后線程終止,相對于TerminateThread函數(shù)來說,這樣做能夠更好地完成附加在該線程上的DLL的清除工作。?
其實可以通過這個來避免c++里面的內(nèi)存泄露