SetThreadpoolWaitEx 함수(threadpoolapiset.h)
이전 대기 개체(있는 경우)를 대체하여 대기 개체를 설정합니다. 작업자 스레드는 핸들이 신호를 받은 후 또는 지정된 시간 제한이 만료된 후 대기 개체의 콜백 함수를 호출합니다.
구문
BOOL SetThreadpoolWaitEx(
[in, out] PTP_WAIT pwa,
[in, optional] HANDLE h,
[in, optional] PFILETIME pftTimeout,
PVOID Reserved
);
매개 변수
[in, out] pwa
대기 개체를 정의하는 TP_WAIT 구조체에 대한 포인터입니다. CreateThreadpoolWait 함수는 이 포인터를 반환합니다.
[in, optional] h
핸들입니다.
이 매개 변수가 NULL이면 대기 개체가 새 콜백 큐를 중단합니다(하지만 이미 큐에 대기 중인 콜백은 계속 발생).
이 매개 변수가 NULL이 아니면 유효한 대기 가능한 개체를 참조해야 합니다.
대기가 보류 중인 동안 이 핸들이 닫히면 함수의 동작이 정의되지 않습니다. 대기가 아직 보류 중이고 핸들을 닫아야 하는 경우 CloseThreadpoolWait 를 사용하여 대기를 취소한 다음 핸들을 닫습니다.
이 매개 변수가 NULL이 아닌 경우 대기가 설정된 것으로 간주됩니다.
[in, optional] pftTimeout
대기 작업이 시간 초과되어야 하는 절대 또는 상대 시간을 지정하는 FILETIME 구조체에 대한 포인터입니다. 이 매개 변수가 양수 값을 가리키는 경우 100나노초 간격으로 1601년 1월 1일(UTC) 이후의 절대 시간을 나타냅니다. 이 매개 변수가 음수 값을 가리키는 경우 현재 시간을 기준으로 대기할 시간을 나타냅니다. 이 매개 변수가 0을 가리키면 대기 시간이 즉시 초과됩니다. 시간 값에 대한 자세한 내용은 파일 시간을 참조하세요.
이 매개 변수가 NULL이면 대기 시간이 초과되지 않습니다.
Reserved
예약되어 있습니다. Null이어야 합니다.
반환 값
대기가 이전에 설정되었고 취소된 경우 TRUE를 반환합니다. 그렇지 않으면 FALSE를 반환합니다.
대기의 이전 상태가 "set"이고 함수가 FALSE를 반환하는 경우 콜백이 진행 중이거나 시작하려고 합니다. 자세한 내용은 설명을 참조하세요.
설명
대기 개체는 하나의 핸들만 기다릴 수 있습니다. 대기 개체에 대한 핸들을 설정하면 이전 대기 핸들(있는 경우)이 바뀝니다.
경우에 따라 애플리케이션이 스레드 풀 타이머를 닫은 후 콜백 함수가 실행될 수 있습니다. 이 동작을 방지하려면 애플리케이션이 CloseThreadpoolWait에 설명된 단계를 따라야 합니다.
pftTimeout에 지정된 시간 제한이 상대적인 경우 시스템이 절전 모드 또는 최대 절전 모드에서 보내는 시간은 대기 만료에 포함되지 않습니다. 대기는 시스템이 절전 모드 해제 상태에서 보내는 누적 경과 시간이 대기의 상대적 시간 제한과 같을 때 신호를 보냅니다. pftTimeout으로 지정된 시간 제한이 절대인 경우 시스템이 절전 모드 또는 최대 절전 모드에서 보내는 시간은 대기 만료에 포함됩니다. 시스템이 절전 모드인 동안 대기가 만료되면 시스템이 절전 모드 해제될 때 대기가 즉시 신호를 보냅니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | threadpoolapiset.h |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |