Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Задает объект таймера, заменив предыдущий таймер, если таковой есть. Рабочий поток вызывает обратный вызов объекта таймера после истечения указанного времени ожидания.
Синтаксис
BOOL SetThreadpoolTimerEx(
[in, out] PTP_TIMER pti,
[in, optional] PFILETIME pftDueTime,
[in] DWORD msPeriod,
[in, optional] DWORD msWindowLength
);
Параметры
[in, out] pti
Указатель на структуру TP_TIMER , которая определяет заданный объект таймера. Функция CreateThreadpoolTimer возвращает этот указатель.
[in, optional] pftDueTime
Указатель на структуру FILETIME , указывающую абсолютное или относительное время истечения срока действия таймера. Если этот параметр указывает на положительное значение, оно указывает абсолютное время с 1 января 1601 года (UTC), измеряемое в 100 единицах наносекунда. Если этот параметр указывает на отрицательное значение, оно указывает время ожидания относительно текущего времени. Если этот параметр указывает на ноль, срок действия таймера истекает немедленно. Дополнительные сведения о значениях времени см. в разделе "Время файла".
Если этот параметр имеет значение NULL, объект таймера перестанет очередь новых обратных вызовов (но обратные вызовы уже в очереди по-прежнему будут возникать).
Таймер задается, если параметр pftDueTime не имеет значения NULL.
[in] msPeriod
Период таймера в миллисекундах. Если этот параметр равен нулю, таймер будет сигнализировать один раз. Если этот параметр больше нуля, таймер периодически. Периодический таймер автоматически активирует каждый раз, когда истекает период, пока таймер не будет отменен.
[in, optional] msWindowLength
Максимальное время, которое система может отложить перед вызовом обратного вызова таймера. Если этот параметр задан, система может пакетные вызовы для экономии энергии.
Возвращаемое значение
Возвращает значение TRUE, если таймер был установлен ранее и был отменен. В противном случае возвращает значение FALSE.
Если предыдущее состояние таймера было "задано", а функция возвращает FALSE, то обратный вызов выполняется или начинается. См. замечания для дальнейшего обсуждения.
Замечания
Если таковой задан, таймер отменяет предыдущий таймер.
В некоторых случаях функции обратного вызова могут выполняться после закрытия таймера threadpool. Чтобы предотвратить это поведение, приложение должно выполнить действия, описанные в CloseThreadpoolTimer.
Если время выполнения, указанное pftDueTime , относительно, время, которое система проводит в спящем режиме или в режиме гибернации, не учитывается к истечении срока действия таймера. Таймер сигнализирует, когда совокупное количество истекшего времени, которое система тратит в состоянии пробуждения равно относительному времени или периоду времени ожидания таймера. Если время выполнения, указанное pftDueTime , является абсолютным, то время, которое система тратит в спящем режиме или гибернации, учитывается в сторону истечения срока действия таймера. Если срок действия таймера истекает во время сна системы, таймер сигнализирует сразу после пробуждения системы.
Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0600 или более поздней версии.
Примеры
Пример см. в разделе "Использование функций пула потоков".
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows 8 [классические приложения | Приложения UWP] |
| минимальный поддерживаемый сервер | Windows Server 2012 [классические приложения | Приложения UWP] |
| целевая платформа | Windows |
| Header | threadpoolapiset.h |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |