DLL创建的线程在DLL卸载前就会被自行结束吗?如何避免?


我使用VS2008写了一个DLL.

在DLL_PROCESS_ATTACH中
我使用_beginthreadex新建了一个线程(thread_work),线程会检查g_twork_exit事件.

在DLL_PROCESS_DETACH中
激活g_twork_exit事件,并用WaitForSingleObject等待thread_work结束.

但是我发现,在我激活g_twork_exit事件之前,thread_work就被结束掉了.
thread_work里使用到的类的析构函数也没有被调用.

这种问题是如何发生的呢?我应该怎么避免?

C++ windows

phoetry 11 years, 8 months ago

Your Answer