Поделиться через


Функция 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, указывающую абсолютное или относительное время ожидания, в течение которого операция ожидания должна истекать. Если этот параметр указывает на положительное значение, он указывает абсолютное время с 1 января 1601 г. (UTC) в интервалах 100-nanosecond. Если этот параметр указывает на отрицательное значение, оно указывает время ожидания относительно текущего времени. Дополнительные сведения о значениях времени см. ввремени.

Если этот параметр указывает на значение 0, время ожидания истекает немедленно. Если этот параметр имеет значение NULL, время ожидания не истекает.

Возвращаемое значение

Никакой

Замечания

Объект ожидания может ждать только один дескриптор. Установка дескриптора для объекта ожидания заменяет предыдущий дескриптор, если таковой имеется.

Необходимо повторно зарегистрировать событие с объектом ожидания, прежде чем сигнализировать ему каждый раз, чтобы активировать обратный вызов ожидания.

Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0600 или более поздней версии.

Примеры

Пример см. в разделе Использование функций пула потоков.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2008 [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка threadpoolapiset.h (включая Windows.h в Windows 7, Windows Server 2008 Windows Server 2008 R2)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

CloseThreadpoolWait

CreateThreadpoolWait

SetThreadpoolWaitEx

пулы потоков

WaitForThreadpoolWaitCallbacks