LeaveCriticalSection 函式 (synchapi.h)
釋放指定之重要區段對象的擁有權。
語法
void LeaveCriticalSection(
[in, out] LPCRITICAL_SECTION lpCriticalSection
);
參數
[in, out] lpCriticalSection
重要區段物件的指標。
傳回值
無
備註
單一進程的線程可以使用重要區段物件進行相互排除同步處理。 此程式負責配置重要區段物件所使用的記憶體,其方式是宣告類型 為 CRITICAL_SECTION的變數。 使用重要區段之前,進程的某些線程必須呼叫 InitializeCriticalSection 或 InitializeCriticalSectionAndSpinCount 函式來初始化物件。
線程會使用 EnterCriticalSection 或 TryEnterCriticalSection 函式來取得重要區段對象的擁有權。 若要釋放其擁有權,線程必須在每次進入重要區段時呼叫 LeaveCriticalSection 一次。
如果線程在沒有指定之重要區段對象的擁有權時呼叫 LeaveCriticalSection ,就會發生錯誤,可能會造成另一個使用 EnterCriticalSection 的線程無限期等候。
在釋放重要區段對象的擁有權之後,LeaveCriticalSection 不會存取指定的CRITICAL_SECTION結構。
進程的任何線程都可以使用 DeleteCriticalSection 函式來釋放初始化重要區段物件時所配置的系統資源。 呼叫此函式之後,重大區段物件就無法再用於同步處理。
範例
如需使用 LeaveCriticalSection 的範例,請參閱 使用 Critical Section 物件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | synchapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |