Функция 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 |
См. также
FreeLibraryWhenCallbackReturns
LeaveCriticalSectionWhenCallbackReturns
ReleaseMutexWhenCallbackReturns