Condividi tramite


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

ReleaseSemaphoreWhenCallbackReturns

SetEventWhenCallbackReturns

SetThreadpoolCallbackRunsLong

Pool di thread

TrySubmitThreadpoolCallback