終結一個線程。windows
BOOL WINAPI TerminateThread( _Inout_ HANDLE hThread, _In_ DWORD dwExitCode );
要終結線程的句柄。這個句柄必須有THREAD_TERMINATE權利。ide
線程的退出值。函數
若是函數成功,返回非0值。spa
若是失敗,返回0.線程
函數是用來推出線程。當函數調執行,目標線程沒有機會執行任何用戶級代碼。與DLL關聯的線程不被通知就終結了。系統是否線程的初始棧。對象
Windows Server 2003 and Windows XP: 目標線程的棧沒被釋放,會引發資源泄漏。進程
本函數是危險的,只能在極端狀況下運用。若是你知道目標線程正在作什麼,你能夠調用TerminateThread;並且你能夠控制目標線程在終結時運行的代碼。好比,TerminateThread調用可能會引發下列問題:內存
調用了TerminateThread,線程就不能自我保護,沒有控制本身handle的權利了。經過CreateThread和CreateProcess返回的線程句柄用THREAD_TERMINATE的權利,所以任何調用者都能經過這些句柄來終結這個線程。ci
若是目標線程是進程的最後一個線程,線程的進程也會終結。資源
線程對象的狀態會被激發,釋聽任何其餘線程等待此線程終結的信號。【也就是WaitForSingleObject[threadID,]會變爲激發態】
終止一個線程沒有必要從系統移除線程對象。當最後一個線程句柄關閉時線程對象被刪除。