Partager via


Fonction SetThreadpoolTimer (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 unités de 100 nanosecondes. Si elle est négative, elle indique le temps d’attente par rapport à l’heure actuelle. Pour plus d’informations sur les valeurs de temps, consultez Heures de fichier.

Si ce paramètre a la valeur NULL, l’objet minuteur cesse de mettre en file d’attente les 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’a pas la valeur NULL.

[in] msPeriod

Période du minuteur, en millisecondes. Si ce paramètre est égal à zéro, le minuteur est signalé une fois. Si ce paramètre est supérieur à zéro, le minuteur est périodique. Un minuteur périodique se réactive automatiquement chaque fois que la période s’écoule, 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 effectuer des appels par lots pour économiser l’alimentation.

Valeur de retour

None

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 après la fermeture du minuteur de threadpool par une application. Pour éviter ce comportement, une application doit suivre les étapes décrites dans CloseThreadpoolTimer.

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

Si l’heure d’échéance spécifiée par pftDueTime est égale à 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.

Exemples

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête threadpoolapiset.h (inclure Windows.h sur Windows 7, Windows Server 2008 Windows Server 2008 R2)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CloseThreadpoolTimer

CreateThreadpoolTimer

IsThreadpoolTimerSet

Pools de threads

WaitForThreadpoolTimerCallbacks