Partager via


CallbackMayRunLong, fonction (threadpoolapiset.h)

Indique que le rappel peut ne pas être retourné rapidement.

Syntaxe

BOOL CallbackMayRunLong(
  [in, out] PTP_CALLBACK_INSTANCE pci
);

Paramètres

[in, out] pci

Pointeur vers une structure de TP_CALLBACK_INSTANCE qui définit le instance de rappel. Le pointeur est passé à la fonction de rappel.

Valeur retournée

La fonction retourne TRUE si un autre thread du pool de threads est disponible pour le traitement des rappels ou si le pool de threads a pu créer un thread. Dans ce cas, la fonction de rappel actuelle peut utiliser le thread actif indéfiniment.

La fonction retourne FALSE si un autre thread du pool de threads n’est pas disponible pour traiter les rappels et si le pool de threads n’a pas pu créer un nouveau thread. Le pool de threads tente de créer un thread après un délai, mais si la fonction de rappel actuelle s’exécute longtemps, le pool de threads risque de perdre son efficacité.

Remarques

Le pool de threads peut utiliser ces informations pour mieux déterminer quand un nouveau thread doit être créé.

La fonction CallbackMayRunLong doit être appelée uniquement par le thread qui traite le rappel. L’appel de cette fonction à partir d’un autre thread peut entraîner une condition de race.

La fonction CallbackMayRunLong marque toujours le rappel comme long, qu’un thread soit disponible ou non pour le traitement des rappels ou que le threadpool soit en mesure d’allouer un nouveau thread. Par conséquent, cette fonction ne doit être appelée qu’une seule fois, même si elle retourne FALSE.

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

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

DisassociateCurrentThreadFromCallback

FreeLibraryWhenCallbackReturns

LeaveCriticalSectionWhenCallbackReturns

ReleaseMutexWhenCallbackReturns

ReleaseSemaphoreWhenCallbackReturns

SetEventWhenCallbackReturns

SetThreadpoolCallbackRunsLong

Pools de threads

TrySubmitThreadpoolCallback