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

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

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

最简单的方法,在"Debug"菜单下----"Exceptions"----"Managed Debugging Assistants"中勾掉"LoaderLock"
说明:
.NET2.0中增加了42种非常强大的调试助手(MDA),Loaderlock是其中之一。Loaderlock检测在一个拥有操作系统loader

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

这样做很有必要,但在进行开发调试的时候,实在太麻烦.楼上改注册表也是解决办法之一,不过这样做,在这样所有基

于.NET2.0开发等于禁用了MDA的优点。所以还是按我上面的方法改比较好点,当然只是建议

       在运行程序退出后,有时候会不然出现这样的错误:正试图在 os 加载程序锁内执行托管代码。不要尝试在DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。

      解决方法是:

         把vs2005菜单的 调试->异常->Managed Debuggin Assistants->LoaderLock 的选中状态去掉即可!

         如果异常(exception)这一项没有的话,在工具---自定义---命令选项卡---左边选择调试--右边把异常托到菜单里就可以了。

                            

posted @ 2013-01-29 22:36  kyoui  阅读(1011)  评论(0编辑  收藏  举报