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