爲何CloseHandle(_beginthreadex(……))

_beginthreadex函數返回一個線程句柄


返回這個handle是爲了讓你有機會對這個線程實施外部動作,諸如waitforsingleobject之類。


CloseHandel(_beginthreadex);


只是關閉了一個線程句柄對象,表示我不再使用該句柄,即不對這個句柄對應的線程做任何干預了。並沒有結束線程。


CloseHandle的功能是關閉一個打開的對象句柄,該對象句柄可以是線程句柄,也可以是進程、信號量等其他內核對象的句柄,而_endthreadex的功能是終止一個線程,它所接受的參數是一個線程的退出碼。   
    
通過調用CloseHandle可以告知系統,已經完成了對某一內核對象的操作,該函數首先檢查調用進程的句柄表,來確認進程是否對該句柄所指向的對象有訪問權,如果句柄無效則返回FALSE,如果有效,
系統將得到該內核對象的數據結構的地址,把結構中的使用計數成員減1,如果計數變爲0,則將從內核中釋放該內核對象。如果計數還未到0,就意味着還有其他的進程在使用這個內核對象,那麼它就不會被釋放。   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章