加载DLL阻止UI线程

时间:2011-12-07 00:20:12

标签: c++ multithreading mfc

在我的应用程序中,只有在99.9%的使用操作中不会发生的特定操作才需要某些dll。因此,为了节省加载时间和内存,这些是根据需要使用LoadLibrary动态加载的。

为了让用户知情,响应库的程序被加载到sperate线程上,然后在UI线程可用时通知UI线程,并且该过程可以继续。

然而,在LoadLibrary操作期间我的实验中,UI线程被锁定,并且事件队列未被处理,无论如何使应用程序锁定并且不再重绘屏幕。

LoadLibrary上的MSDN没有提到这种行为是否可以在事件队列仍在处理时在一个线程中加载一个dll?

1 个答案:

答案 0 :(得分:1)

在异步加载dll时没有问题,它与Visual Studio Debugger一起查找符号服务器中新加载的dll的符号。

当禁用符号服务器或没有调试器运行应用程序时,LoadLibrary

的执行没有锁定

Debugging Symbols