正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码

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

 2014/9/11 4:01:43  gisoracle  程序员俱乐部  我要评论(0)
  • 摘要:来自:http://www.cnblogs.com/lcxu2/archive/2011/01/16/2004016.html正试图在os加载程序锁内执行托管代码。不要尝试在DllMain或映像初始化函数内运行托管代码...(2011-01-0516:17:14)转载标签:it分类:C#当我在窗体初始化的时候,调用了一个外部的dill时,它就不知什么原因的抛出一个“正试图在os加载程序锁内执行托管代码。不要尝试在DllMain或映像初始化函数内运行托管代码”的异常
  • 标签:程序 函数 运行 代码 执行

 

来自:http://www.cnblogs.com/lcxu2/archive/2011/01/16/2004016.html

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

 (2011-01-05 16:17:14) 转载 标签: 

it

分类: C# 当我在窗体初始化的时候,调用了一个外部的dill时,它就不知什么原因的 抛出一个“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”的异常,程序就卡掉了,在网上查了查,相关说明如下: .NET2.0中增加了42种非常强大的调试助手,MDA.Loaderlock 是其中之一。Loaderlock检测在一个拥有操作系统loader lock的线程上运行托管代码的情况。这样做有可能会引起死锁,并且有可能在操作系统加载器初始化DLL前被使用。 大致理解:就是窗体还没有完全生成,而你在这个时候就调用了别的dll,可能就抛出了这个异常! 解决此异常的方法为: 方法一 把vs2005菜单的 调试->异常->Managed Debuggin Assistants->LoaderLock 的选中状态去掉  如果异常(exception)这一项没有的话,在工具---自定义---命令选项卡---左边选择调试--右边把异常托到菜单里  快捷键Ctrl+Alt+E,修改Managed Debuggin Assistants->LoaderLock 的选中状态去掉   方法二 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework下面增加一个String,值为"0"  不过这样做,在该计算机上所有基于.NET2.0开发都得不到MDA的好处。 
上一篇: C#各种异常处理方式 下一篇: 没有下一篇了!
发表评论
用户名: 匿名