Condividi tramite


Funzione SetThreadpoolCallbackLibrary (winbase.h)

Assicura che la DLL specificata rimanga caricata purché siano presenti callback in sospeso.

Sintassi

void SetThreadpoolCallbackLibrary(
  [in, out] PTP_CALLBACK_ENVIRON pcbe,
  [in]      PVOID                mod
);

Parametri

[in, out] pcbe

Struttura TP_CALLBACK_ENVIRON che definisce l'ambiente di callback. La funzione InitializeThreadpoolEnvironment restituisce questa struttura.

[in] mod

Handle per la DLL.

Valore restituito

nessuno

Osservazioni

È consigliabile chiamare questa funzione se un callback potrebbe acquisire il blocco del caricatore. Ciò impedisce che si verifichi un deadlock quando un thread in DllMain è in attesa del callback alla fine e un altro thread che esegue il callback tenta di acquisire il blocco del caricatore.

Se la DLL contenente il callback potrebbe essere scaricata, il codice di pulizia in DllMain deve annullare i callback in sospeso prima di rilasciare l'oggetto.

La gestione dei callback creati con un TP_CALLBACK_ENVIRON che specifica una libreria di callback richiede un uso intensivo dell'elaborazione. È consigliabile prendere in considerazione altre opzioni per garantire che la libreria non venga scaricata durante l'esecuzione dei callback o per garantire che i callback che potrebbero essere in esecuzione non acquisiscano il blocco del caricatore.

Il pool di thread presuppone la proprietà del riferimento alla libreria fornito a questa funzione. Il chiamante non deve chiamare FreeLibrary su un handle di modulo dopo averlo passato a questa funzione.

Questa funzione viene implementata come funzione inline.

Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0600 o versione successiva.

Requisiti

   
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)

Vedi anche

DestroyThreadpoolEnvironment

FreeLibraryWhenCallbackReturns

InitializeThreadpoolEnvironment

SetThreadpoolCallbackCleanupGroup

SetThreadpoolCallbackPool

SetThreadpoolCallbackPriority

SetThreadpoolCallbackRunsLong

Pool di thread