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
FreeLibraryWhenCallbackReturns
InitializeThreadpoolEnvironment