LeaveCriticalSection 함수(synchapi.h)

지정된 중요 섹션 개체의 소유권을 해제합니다.

구문

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

매개 변수

[in, out] lpCriticalSection

중요한 섹션 개체에 대한 포인터입니다.

반환 값

없음

설명

단일 프로세스의 스레드는 상호 배제 동기화에 Critical-section 개체를 사용할 수 있습니다. 프로세스는 CRITICAL_SECTION 형식의 변수를 선언하여 수행할 수 있는 critical-section 개체에서 사용하는 메모리를 할당합니다. 중요한 섹션을 사용하기 전에 프로세스의 일부 스레드는 개체를 초기 화하기 위해 InitializeCriticalSection 또는 InitializeCriticalSectionAndSpinCount 함수를 호출해야 합니다.

스레드는 EnterCriticalSection 또는 TryEnterCriticalSection 함수를 사용하여 중요한 섹션 개체의 소유권을 획득합니다. 소유권을 해제하려면 스레드가 중요 섹션에 들어갈 때마다 LeaveCriticalSection 을 한 번 호출해야 합니다.

스레드가 지정한 중요 섹션 개체의 소유권이 없을 때 LeaveCriticalSection 을 호출하는 경우 EnterCriticalSection 을 사용하는 다른 스레드가 무기한 대기할 수 있는 오류가 발생합니다.

LeaveCriticalSection 은 중요한 섹션 개체의 소유권이 해제된 후 지정된 CRITICAL_SECTION 구조에 액세스하지 않습니다.

프로세스의 모든 스레드는 DeleteCriticalSection 함수를 사용하여 중요한 섹션 개체가 초기화될 때 할당된 시스템 리소스를 해제할 수 있습니다. 이 함수가 호출된 후에는 더 이상 동기화에 중요한 섹션 개체를 사용할 수 없습니다.

예제

LeaveCriticalSection을 사용하는 예제는 중요 섹션 개체 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 synchapi.h(Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2에 Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

중요 섹션 개체

DeleteCriticalSection

EnterCriticalSection

InitializeCriticalSection

InitializeCriticalSectionAndSpinCount

동기화 함수

TryEnterCriticalSection

VBS Enclave에서 사용할 수 있는 Vertdll API