昨天遇到了Loaderlock的问题。

出错信息为:
检测到LoaderLock,正试图在OS加载程序锁内执行托管代码,不要尝试在DllMain或映像初始化函数内运行托管代码,这样会导致应用程序挂起。 

解决办法:
在"Debug"菜单下----"Exceptions"----"Managed Debugging Assistants"中勾掉"LoaderLock" 

说明:
.NET2.0中增加了42种非常强大的调试助手(MDA),Loaderlock是其中之一。Loaderlock检测在一个拥有操作系统loader lock的线程上运行托管代码的情况。这样做有可能会引起死锁,并且有可能在操作系统加载器初始化DLL前被使用。虽然这样做很有必要,但在进行开发调试的时候,实在太麻烦。

注意:不是工程属性里的debug,而是菜单栏的debug