다음을 통해 공유


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

참고 항목

CloseThreadpoolWait

CreateThreadpoolWait

SetThreadpoolWaitEx

스레드 풀

WaitForThreadpoolWaitCallbacks