LeaveCriticalSection 函式 (synchapi.h)

釋放指定之重要區段對象的擁有權。

語法

void LeaveCriticalSection(
  [in, out] LPCRITICAL_SECTION lpCriticalSection
);

參數

[in, out] lpCriticalSection

重要區段物件的指標。

傳回值

備註

單一進程的線程可以使用重要區段物件進行相互排除同步處理。 此程式負責配置重要區段物件所使用的記憶體,其方式是宣告類型 為 CRITICAL_SECTION的變數。 使用重要區段之前,進程的某些線程必須呼叫 InitializeCriticalSectionInitializeCriticalSectionAndSpinCount 函式來初始化物件。

線程會使用 EnterCriticalSectionTryEnterCriticalSection 函式來取得重要區段對象的擁有權。 若要釋放其擁有權,線程必須在每次進入重要區段時呼叫 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

另請參閱

重要區段物件

DeleteCriticalSection

EnterCriticalSection

InitializeCriticalSection

InitializeCriticalSectionAndSpinCount

同步處理函式

TryEnterCriticalSection

VBS 記憶體保護區中可用的 Vertdll API