Функция disassociateCurrentThreadFromCallback (threadpoolapiset.h)

Удаляет связь между выполняющейся в данный момент функцией обратного вызова и объектом, который инициировал обратный вызов. Текущий поток больше не будет считаться выполнением обратного вызова от имени объекта .

Синтаксис

void DisassociateCurrentThreadFromCallback(
  [in, out] PTP_CALLBACK_INSTANCE pci
);

Параметры

[in, out] pci

Указатель на структуру TP_CALLBACK_INSTANCE , которая определяет экземпляр обратного вызова. Указатель передается в функцию обратного вызова.

Возвращаемое значение

None

Remarks

Если это последний поток, выполняющий обратный вызов от имени объекта, все потоки, ожидающие завершения обратных вызовов объекта, будут освобождены.

Поток остается связанным с группой очистки объекта, пока поток не вернется в пул потоков. Это позволяет подпрограммам завершения работы БИБЛИОТЕКи DLL безопасно синхронизироваться с невыполненными обратными вызовами и продолжать выгружать код DLL после завершения всех обратных вызовов.

Объект, создающий обратный вызов, остается действительным в течение всего времени обратного вызова. Объект обратного вызова может быть повторно использован или освобожден (хотя синхронизация с выпуском группы очистки по-прежнему требуется).

Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0600 или выше.

Требования

   
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header threadpoolapiset.h (включая Windows.h в Windows 7, Windows Server 2008 Windows Server 2008 R2)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CallbackMayRunLong

FreeLibraryWhenCallbackReturns

LeaveCriticalSectionWhenCallbackReturns

ReleaseMutexWhenCallbackReturns

ReleaseSemaphoreWhenCallbackReturns

SetEventWhenCallbackReturns

Пулы потоков

TrySubmitThreadpoolCallback