Funzione CallbackMayRunLong (threadpoolapiset.h)
Indica che il callback potrebbe non restituire rapidamente.
Sintassi
BOOL CallbackMayRunLong(
[in, out] PTP_CALLBACK_INSTANCE pci
);
Parametri
[in, out] pci
Puntatore a una struttura TP_CALLBACK_INSTANCE che definisce l'istanza di callback. Il puntatore viene passato alla funzione di callback.
Valore restituito
La funzione restituisce TRUE se è disponibile un altro thread nel pool di thread per l'elaborazione dei callback o se il pool di thread è stato in grado di creare un nuovo thread. In questo caso, la funzione di callback corrente può usare il thread corrente per un periodo illimitato.
La funzione restituisce FALSE se un altro thread nel pool di thread non è disponibile per elaborare i callback e il pool di thread non è stato in grado di creare un nuovo thread. Il pool di thread tenterà di creare un nuovo thread dopo un ritardo, ma se la funzione di callback corrente viene eseguita a lungo, il pool di thread potrebbe perdere efficienza.
Commenti
Il pool di thread può usare queste informazioni per determinare meglio quando creare un nuovo thread.
La funzione CallbackMayRunLong deve essere chiamata solo dal thread che sta elaborando il callback. La chiamata di questa funzione da un altro thread può causare una race condition.
La funzione CallbackMayRunLong contrassegna sempre il callback a esecuzione prolungata, indipendentemente dal fatto che sia disponibile o meno un thread per l'elaborazione dei callback o il pool di thread sia in grado di allocare un nuovo thread. Pertanto, questa funzione deve essere chiamata una sola volta, anche se restituisce FALSE.
Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0600 o versione successiva.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | threadpoolapiset.h (include Windows.h in Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |
Vedere anche
DisassociateCurrentThreadFromCallback
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns