Partager via


Fonction SetThreadpoolWaitEx (threadpoolapiset.h)

Définit l’objet wait, en remplaçant l’objet wait précédent, le cas échéant. Un thread de travail appelle la fonction de rappel de l’objet wait une fois le handle signalé ou après l’expiration du délai d’expiration spécifié.

Syntaxe

BOOL SetThreadpoolWaitEx(
  [in, out]      PTP_WAIT  pwa,
  [in, optional] HANDLE    h,
  [in, optional] PFILETIME pftTimeout,
                 PVOID     Reserved
);

Paramètres

[in, out] pwa

Pointeur vers une structure TP_WAIT qui définit l’objet wait. La fonction CreateThreadpoolWait retourne ce pointeur.

[in, optional] h

Handle.

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

Si ce paramètre n’est pas NULL, il doit faire référence à un objet valide pouvant être attendu.

Si ce handle est fermé alors que l’attente est toujours en attente, le comportement de la fonction n’est pas défini. Si l’attente est toujours en attente et que le handle doit être fermé, utilisez CloseThreadpoolWait pour annuler l’attente, puis fermez le handle.

L’attente est considérée comme définie si ce paramètre n’est pas NULL.

[in, optional] pftTimeout

Pointeur vers une structure FILETIME qui spécifie l’heure absolue ou relative à laquelle l’opération d’attente doit expirer. Si ce paramètre pointe vers une valeur positive, il indique l’heure absolue depuis le 1er janvier 1601 (UTC), par intervalles de 100 nanosecondes. Si ce paramètre pointe vers une valeur négative, il indique le temps d’attente par rapport à l’heure actuelle. Si ce paramètre pointe vers zéro, l’attente expire immédiatement. Pour plus d’informations sur les valeurs de temps, consultez Heures de fichier.

Si ce paramètre a la valeur NULL, l’attente n’expire pas.

Reserved

Réservé. Doit être NULL.

Valeur retournée

Retourne TRUE si l’attente a été définie précédemment et a été annulée. Sinon, retourne la valeur FALSE.

Si l’état précédent de l’attente était « défini » et que la fonction retourne FALSE, un rappel est en cours ou sur le point de commencer. Consultez les remarques pour en savoir plus.

Remarques

Un objet wait ne peut attendre qu’un seul handle. La définition du handle pour un objet wait remplace le handle d’attente précédent, le cas échéant.

Dans certains cas, les fonctions de rappel peuvent s’exécuter après la fermeture du minuteur du pool de threads par une application. Pour éviter ce comportement, une application doit suivre les étapes décrites dans CloseThreadpoolWait.

Si le délai d’expiration spécifié par pftTimeout est relatif, le temps que le système passe en veille ou en veille prolongée ne compte pas dans l’expiration de l’attente. L’attente est signalée lorsque le temps cumulé passé par le système dans l’état de veille est égal au délai d’attente relatif. Si le délai d’expiration spécifié par pftTimeout est absolu, le temps que le système passe en veille ou en veille prolongée compte pour l’expiration de l’attente. Si l’attente expire alors que le système est en veille, l’attente est signalée immédiatement lorsque le système se réveille.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête threadpoolapiset.h
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CloseThreadpoolWait

CreateThreadpoolWait

Pools de threads

WaitForThreadpoolWaitCallbacks