WaitForSingleObject para o objeto de thread não funciona no descarregamento de DLL

Eu me deparei com um comportamento inesperado do mecanismo de encadeamento do Windows quando o DLL é descarregado. Tenho um pacote de objetos de thread de trabalho e estou tentando finalizá-los graciosamente quando o DLL é descarregado (via DllMain DLL_PROCESS_DETACH). O código é muito simples (eu envio um evento para concluir o loop de espera do thread):

WaitForSingleObject( ThrHandle, INFINITE );
CloseHandle( ThrHandle );

No entanto, o WaitForSingleObject trava a coisa toda. Funciona bem se eu executá-lo antes que a DLL seja descarregada. Como esse comportamento pode ser corrigido?

questionAnswers(1)

yourAnswerToTheQuestion