SleepConditionVariableSRW 함수(synchapi.h)
지정된 조건 변수에서 절전 모드로 전환하고 지정된 잠금을 원자성 작업으로 해제합니다.
구문
BOOL SleepConditionVariableSRW(
[in, out] PCONDITION_VARIABLE ConditionVariable,
[in, out] PSRWLOCK SRWLock,
[in] DWORD dwMilliseconds,
[in] ULONG Flags
);
매개 변수
[in, out] ConditionVariable
조건 변수에 대한 포인터입니다. 이 변수는 InitializeConditionVariable 함수를 사용하여 초기화해야 합니다.
[in, out] SRWLock
잠금에 대한 포인터입니다. 이 잠금은 Flags 매개 변수에 지정된 방식으로 유지되어야 합니다.
[in] dwMilliseconds
제한 시간 간격(밀리초)입니다. 간격이 경과하면 함수가 를 반환합니다. dwMilliseconds가 0이면 함수는 지정된 개체의 상태를 테스트하고 즉시 반환합니다. dwMilliseconds가 INFINITE이면 함수의 제한 시간 간격이 경과하지 않습니다.
[in] Flags
이 매개 변수가 CONDITION_VARIABLE_LOCKMODE_SHARED 경우 SRW 잠금은 공유 모드에 있습니다. 그렇지 않으면 잠금이 배타적 모드입니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다.
함수가 실패하면 반환 값은 입니다 0
. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
시간 제한이 만료되면 함수는 를 반환 FALSE
하고 GetLastError는ERROR_TIMEOUT 반환합니다.
설명
이 함수가 호출될 때 잠금이 잠금 해제되면 함수 동작이 정의되지 않습니다.
WakeConditionVariable 또는 WakeAllConditionVariable 함수를 사용하여 스레드를 해제할 수 있습니다. 스레드가 절전 모드 해제된 후 스레드가 절전 상태에 들어갔을 때 해제된 잠금을 다시 획득합니다.
조건 변수는 가짜 절전 모드 해제(명시적 절전 모드 해제와 연결되지 않음) 및 도난당한 절전 모드 해제(다른 스레드가 절전 모드 해제 전에 실행되도록 관리됨)의 영향을 받습니다. 따라서 절전 작업이 반환된 후 조건자(일반적으로 while
루프)를 다시 확인해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | synchapi.h(Windows 7, Windows Server 2008 Windows Server 2008 R2의 Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |