Пишу DLL.
Вызываю 1-ю функцию, внутри неё я создаю thread:
hThread = CreateThread(NULL, 0, MyThreadFunction, ...);
Хочу завершить thread, вызываю 2-ю функцию:
StopMyThread(hThread); //моя фукнция
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
Всё отрабатывает корректно.
Теперь я хочу закрыть thread, если программа, которая использует dll, вызовет FreeLibrary. Для этого в dllmain обрабатываю DLL_PROCESS_DETACH. Пишу тот же код, что и для 2-ой функции, но зависает на WaitForSingleObject(hThread, INFINITE).
Почему так происходит?