正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码

转载 2015年07月07日 10:39:00
当我在窗体初始化的时候,调用了一个外部的dill时,它就不知什么原因的 抛出一个“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”的异常,程序就卡掉了,在网上查了查,相关说明如下:
.NET2.0中增加了42种非常强大的调试助手,MDA.Loaderlock 是其中之一。Loaderlock检测在一个拥有操作系统loader lock的线程上运行托管代码的情况。这样做有可能会引起死锁,并且有可能在操作系统加载器初始化DLL前被使用。
大致理解:就是窗体还没有完全生成,而你在这个时候就调用了别的dill,可能就抛出了这个异常!
解决此异常的方法为:

方法一

在菜单中选择 “调试->异常”,打开异常设置窗口(也可通过快捷键Ctrl+Alt+E打开),在异常窗口中找到 “Managed Debuggin Assistants->LoaderLock”,将该项“引发”的状态框中的对勾去掉,最终设置结果如下图所示:


如果异常(exception)这一项没有的话,在工具---自定义---命令选项卡---左边选择调试--右边把异常托到菜单里 
快捷键Ctrl+Alt+E,修改Managed Debuggin Assistants->LoaderLock 的选中状态去掉

方法二

在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework下面增加一个String,值为"0"
 不过这样做,在该计算机上所有基于.NET2.0开发都得不到MDA的好处。

建议使用第一种方法,亲测有效

本文部分内容转自http://www.cnblogs.com/lcxu2/archive/2011/01/16/2004016.html

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

正尝试在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。...
  • aoshilang2249
  • aoshilang2249
  • 2014年07月23日 16:57
  • 3589

C#报错“OS加载程序锁内执行托管代码,不要尝试在DllMain或映像初始化函数内运行托管代码”的解决方法。

在VS下进行C#编程并调用C++的DLL时候,有很小的概率报错“OS加载程序锁内执行托管代码,不要尝试在DllMain或映像初始化函数内运行托管代码”,其解决方法是把VS菜单中的 调试—异常—Mana...
  • niusiqiang
  • niusiqiang
  • 2015年01月25日 18:03
  • 1092

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

 异常信息如标题解决方法: 调试-->异常(Ctrl+Alt+E)-->Managed Debuggin Assistants->LoaderLock 的选中状态去掉即可。如果你在‘调试’菜单中找不到...
  • kissqi
  • kissqi
  • 2009年11月25日 17:11
  • 5717

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

昨天跑代码调试程序时还好好的,今天早上来也同样的方法调试也是好好的,就刚才突然出现崩溃,输出如下: MVSP.Client.exe 已触发了一个断点 程序是一个vs2010的C...
  • jszj
  • jszj
  • 2015年03月26日 09:26
  • 3288

正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。问题的解决方法!

今天调试的时候突然发现出现一个这样的错误:正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。查了网上的解决方法:这个问题只...
  • yzh8734
  • yzh8734
  • 2008年01月30日 15:07
  • 1108

正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码

在窗体初始化的时候,调用了一个外部的dill时,它就不知什么原因的 抛出一个“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”的异常,程序就卡掉了...
  • u011116642
  • u011116642
  • 2013年12月31日 15:40
  • 629

正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。问题的解决方法!

       今天调试的时候突然发现出现一个这样的错误:正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。       查...
  • zapzqc
  • zapzqc
  • 2007年12月19日 08:34
  • 9431

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

解决办法:在"Debug"菜单下----"Exceptions"----"Managed Debugging Assistants"中勾掉"LoaderLock" ...
  • muzai
  • muzai
  • 2009年09月04日 11:53
  • 4732

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

 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。 .NET2.0中增加了42种非常强大的调试助手(MDA,Loader...
  • jianyi7659
  • jianyi7659
  • 2011年03月08日 14:05
  • 4272

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

在运行程序退出后,有时候会不然出现这样的错误:正试图在 os 加载程序锁内执行托管代码。不要尝试在DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。      解决方法是...
  • MasterLonely
  • MasterLonely
  • 2014年04月07日 09:07
  • 525
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码
举报原因:
原因补充:

(最多只允许输入30个字)