摘要: 估计很多人都知道装载DLL过程中的多线程死锁是因为DllMain的顺序调用规则,但是很少人了解卸载DLL过程中的多线程死锁也是由于同样的原因。例如,如果一个DLL的DllMain的代码写成下面的形式,且进程中有至少一个DLL的DllMain没有调用DisableThreadLibraryCalls函数的话,那么卸载该DLL过程中就会因为DllMain的顺序操作特性带来DLL内部线程没有完全退出的错误。 //----------------------start ------------HANDLE g_thread_handle =NULL; // 该DLL内部线程的句柄... 阅读全文
posted @ 2012-06-12 00:28 瓜蛋 阅读(4044) 评论(1) 推荐(1) 编辑