Partager via


SetThreadpoolWaitEx, fonction (threadpoolapiset.h)

Définit l’objet d’attente, en remplaçant l’objet d’attente précédent, le cas échéant. Un thread de travail appelle la fonction de rappel de l’objet d’attente 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 d’attente. La fonction CreateThreadpoolWait retourne ce pointeur.

[in, optional] h

Un handle.

Si ce paramètre est NULL, l’objet d’attente cesse de mettre en file d’attente de 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 pouvant être attendu valide.

Si ce handle est fermé pendant 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 le temps absolu ou relatif auquel 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), dans les intervalles de 100 nanosecondes. Si ce paramètre pointe vers une valeur négative, il indique la durée d’attente relative à 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 File Times.

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é précédemment définie et a été annulée. Sinon, retourne FALSE.

Si l’état précédent de l’attente a été défini et que la fonction retourne FALSE, un rappel est en cours ou sur le point de commencer. Pour plus d’informations, consultez les remarques.

Remarques

Un objet d’attente ne peut attendre qu’un seul handle. La définition du handle d’un objet d’attente remplace le handle d’attente 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 CloseThreadpoolWait.

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

Spécifications

Requirement Valeur
Client minimum requis Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
plateforme cible Fenêtres
Header threadpoolapiset.h
Library Kernel32.lib
DLL Kernel32.dll

Voir aussi

CloseThreadpoolWait

CreateThreadpoolWait

Pools de threads

WaitForThreadpoolWaitCallbacks