SetThreadpoolWait 함수(threadpoolapiset.h)
이전 대기 개체(있는 경우)를 대체하여 대기 개체를 설정합니다. 작업자 스레드는 핸들이 신호를 받은 후 또는 지정된 시간 제한이 만료된 후 대기 개체의 콜백 함수를 호출합니다.
통사론
void SetThreadpoolWait(
[in, out] PTP_WAIT pwa,
[in, optional] HANDLE h,
[in, optional] PFILETIME pftTimeout
);
매개 변수
[in, out] pwa
대기 개체를 정의하는 TP_WAIT 구조체에 대한 포인터입니다. CreateThreadpoolWait 함수는 이 포인터를 반환합니다.
[in, optional] h
핸들입니다.
이 매개 변수가 NULL이면 대기 개체가 새 콜백 큐를 중단합니다(하지만 이미 큐에 대기 중인 콜백은 계속 발생).
이 매개 변수가 NULL이 아니면 유효한 대기 가능한 개체를 참조해야 합니다.
뮤텍스는 지원되지 않습니다. 뮤텍스에 대한 핸들이 전달되면 스레드 풀에서 STATUS_THREADPOOL_HANDLE_EXCEPTION 예외가 발생하며 ExceptionRecord.ExceptionInformation[0]은 STATUS_INVALID_PARAMETER_3 같습니다.
대기가 보류 중인 동안 이 핸들을 닫으면 함수의 동작이 정의되지 않습니다. 대기가 아직 보류 중이고 핸들을 닫아야 하는 경우 CloseThreadpoolWait 사용하여 대기를 취소한 다음 핸들을 닫습니다.
이 매개 변수가 NULL이 아닌 경우 대기가 설정된 것으로 간주됩니다.
[in, optional] pftTimeout
대기 작업이 시간 초과되어야 하는 절대 또는 상대 시간을 지정하는 FILETIME 구조체에 대한 포인터입니다. 이 매개 변수가 양수 값을 가리키는 경우 1601년 1월 1일(UTC) 이후의 절대 시간을 100나노초 간격으로 나타냅니다. 이 매개 변수가 음수 값을 가리키는 경우 현재 시간을 기준으로 대기할 시간을 나타냅니다. 시간 값에 대한 자세한 내용은 파일 시간
이 매개 변수가 0을 가리키면 대기 시간이 즉시 초과됩니다. 이 매개 변수가 NULL이면 대기 시간이 초과되지 않습니다.
반환 값
없음
발언
대기 개체는 하나의 핸들만 대기할 수 있습니다. 대기 개체에 대한 핸들을 설정하면 이전 핸들(있는 경우)이 바뀝니다.
대기 콜백을 트리거할 때마다 신호를 표시하기 전에 대기 개체에 이벤트를 다시 등록해야 합니다.
이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 0x0600 이상으로 정의합니다.
예제
예를 들어 스레드 풀 함수사용하는
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | threadpoolapiset.h(Windows 7, Windows Server 2008 Windows Server 2008 R2의 Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
CreateThreadpoolWait