Funzione DisassociateCurrentThreadFromCallback (threadpoolapiset.h)
Rimuove l'associazione tra la funzione di callback attualmente in esecuzione e l'oggetto che ha avviato il callback. Il thread corrente non verrà più conteggiato come esecuzione di un callback per conto dell'oggetto.
Sintassi
void DisassociateCurrentThreadFromCallback(
[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
nessuno
Osservazioni
Se si tratta dell'ultimo thread che esegue un callback per conto dell'oggetto, tutti i thread in attesa del completamento dei callback dell'oggetto verranno rilasciati.
Il thread rimane associato al gruppo di pulizia dell'oggetto fino a quando il thread torna al pool di thread. In questo modo, le routine di arresto dll si sincronizzano in modo sicuro con callback in sospeso e si procede con lo scaricamento del codice della DLL al termine di tutti i callback.
L'oggetto di generazione del callback rimane valido per la durata del callback. L'oggetto callback può essere riutilizzato o rilasciato (anche se la sincronizzazione con la versione del gruppo di pulizia è ancora necessaria).
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 | threadpoolapiset.h (includere Windows.h in Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |
Vedere anche
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns