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

CallbackMayRunLong

FreeLibraryWhenCallbackReturns

LeaveCriticalSectionWhenCallbackReturns

ReleaseMutexWhenCallbackReturns

ReleaseSemaphoreWhenCallbackReturns

SetEventWhenCallbackReturns

Pool di thread

TrySubmitThreadpoolCallback