Partager via


SetThreadpoolTimer, fonction (threadpoolapiset.h)

Définit l’objet minuteur, en remplaçant le minuteur précédent, le cas échéant. Un thread de travail appelle le rappel de l’objet minuteur après l’expiration du délai d’expiration spécifié.

Syntaxe

VOID SetThreadpoolTimer(
  [in, out]      PTP_TIMER pti,
  [in, optional] PFILETIME pftDueTime,
  [in]           DWORD     msPeriod,
  [in]           DWORD     msWindowLength
);

Paramètres

[in, out] pti

Pointeur vers une structure TP_TIMER qui définit l’objet minuteur à définir. La fonction CreateThreadpoolTimer retourne ce pointeur.

[in, optional] pftDueTime

Pointeur vers une structure FILETIME qui spécifie l’heure absolue ou relative à laquelle le minuteur doit expirer. Si elle est positive ou nulle, elle indique l’heure absolue depuis le 1er janvier 1601 (UTC), mesurée en 100 nanosecondes. S’il est négatif, il indique la durée d’attente relative à l’heure actuelle. Pour plus d’informations sur les valeurs de temps, consultez File Times.

Si ce paramètre est NULL, l’objet minuteur cesse de mettre en file d’attente de nouveaux rappels (mais les rappels déjà mis en file d’attente se produisent toujours).

Le minuteur est défini si le paramètre pftDueTime n’est pas NULL.

[in] msPeriod

Période du minuteur, en millisecondes. Si ce paramètre est égal à zéro, le minuteur est signalé une seule fois. Si ce paramètre est supérieur à zéro, le minuteur est périodique. Un minuteur périodique réactive automatiquement chaque fois que la période s’est écoulée, jusqu’à ce que le minuteur soit annulé.

[in] msWindowLength

Durée maximale pendant laquelle le système peut retarder avant d’appeler le rappel du minuteur. Si ce paramètre n’est pas défini sur zéro, le système peut traiter les appels par lots pour conserver la puissance.

Valeur retournée

Aucun

Remarques

La définition du minuteur annule le minuteur précédent, le cas échéant.

Dans certains cas, les fonctions de rappel peuvent s’exécuter une fois qu’une application ferme le minuteur du pool de threads. Pour éviter ce comportement, une application doit suivre les étapes décrites dans CloseThreadpoolTimer.

Si le temps d’échéance spécifié par pftDueTime est relatif, le temps passé par le système en veille ou en veille prolongée ne compte pas vers l’expiration du minuteur. Le minuteur est signalé lorsque le temps cumulé passé par le système dans l’état de réveil est égal à l’heure ou à la période relative du minuteur. Si le temps d’échéance spécifié par pftDueTime est absolu, le temps passé par le système en veille ou en veille prolongée compte vers l’expiration du minuteur. Si le minuteur expire pendant que le système est en veille, le minuteur est signalé immédiatement lorsque le système se réveille.

Si le délai d’échéance spécifié par pftDueTime est égal à zéro, le minuteur expire immédiatement.

Pour compiler une application qui utilise cette fonction, définissez _WIN32_WINNT comme 0x0600 ou une version ultérieure.

Examples

Pour obtenir un exemple, consultez Utilisation des fonctions de pool de threads.

Spécifications

Requirement Valeur
Client minimum requis Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | Applications UWP]
plateforme cible Fenêtres
Header threadpoolapiset.h (inclure Windows.h sur Windows 7, Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
DLL Kernel32.dll

Voir aussi

CloseThreadpoolTimer

CreateThreadpoolTimer

IsThreadpoolTimerSet

Pools de threads

WaitForThreadpoolTimerCallbacks