LeaveCriticalSection
LeaveCriticalSection
放棄當前線程對鎖定部分的所有權。一旦鎖定部分的所有權被放棄,那麼請求訪問臨界區的下一個線程,將可以對鎖定部分進行操作。
每一個調用EnterCriticalSection的線程,都應該調用一次LeaveCriticalSection。
void WINAPI LeaveCriticalSection( _Inout_LPCRITICAL_SECTION lpCriticalSection);
lpCriticalSection[in, out]
此函數返回值為空。
使一個線程可以使用一個臨界段對象來進行互斥同步。這個過程需要優先創建一個臨界區結構體變數(分配使用內存)。在使用臨界區之前,待操作臨界區的進程必須調用InitializeCriticalSection 或者 InitializeCriticalSectionAndSpinCount 函數來初始化臨界區。
一個線程使用EnterCriticalSection 或TryEnterCriticalSection函數來獲得關鍵部分對象的所有權時,該線程必須在離開臨界區時調用LeaveCriticalSection。
如果一個線程在進入臨界區后沒有調用LeaveCriticalSection,則會出現等待進入臨界區的線程無限期等待的問題。