“检测到LoaderLock”的解决办法

  尝试在关闭一个被调试的程序时出现如下错误:

检测到LoaderLock

DLL“C:\WINDOWS\assembly\GAC\...\..\...dll”正试图在 OS 加载程序锁内执行托管代码。不要尝试在DllMain 或映像初始化函数

内运行托管代码,这样做会导致应用程序挂起。

 

  最简单的方法,在"Debug"菜单下----"Exceptions"----"Managed Debugging Assistants"中掉"LoaderLock"

说明:
  .NET2.0中增加了42种非常强大的调试助手(MDA) ,Loaderlock是其中之一。Loaderlock检测在一个拥有操作系统loader lock

的线程上运行托管代码的情况。这样做有可能会引起死锁,并且有可能在操作系统加载器初始化DLL前被使用。虽然这样做很有必要,

但在进行开发调试的时候, 实在太麻烦. 当然修改注册表也是解决办法之一, 不过这样做, 在这样所有基于.NET2.0开发等于禁用了MDA

的优点。

 

转载于:

“检测到LoaderLock”的解决办法: http://hi.baidu.com/liuzumou/item/1218c4df133c26dd241f4058

posted @ 2012-11-02 09:21  XiaoweiLiu  阅读(2396)  评论(0编辑  收藏  举报