正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码......
生活随笔
收集整理的這篇文章主要介紹了
正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码......
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
當(dāng)我在窗體初始化的時(shí)候,調(diào)用了一個(gè)外部的dill時(shí),它就不知什么原因的 拋出一個(gè)“正試圖在 os 加載程序鎖內(nèi)執(zhí)行托管代碼。不要嘗試在 DllMain 或映像初始化函數(shù)內(nèi)運(yùn)行托管代碼”的異常,程序就卡掉了,在網(wǎng)上查了查,相關(guān)說(shuō)明如下: .NET2.0中增加了42種非常強(qiáng)大的調(diào)試助手,MDA.Loaderlock 是其中之一。Loaderlock檢測(cè)在一個(gè)擁有操作系統(tǒng)loader lock的線程上運(yùn)行托管代碼的情況。這樣做有可能會(huì)引起死鎖,并且有可能在操作系統(tǒng)加載器初始化DLL前被使用。 大致理解:就是窗體還沒(méi)有完全生成,而你在這個(gè)時(shí)候就調(diào)用了別的dill,可能就拋出了這個(gè)異常! 解決此異常的方法為: 方法一 把vs2005菜單的 調(diào)試->異常->Managed Debuggin Assistants->LoaderLock 的選中狀態(tài)去掉? 如果異常(exception)這一項(xiàng)沒(méi)有的話,在工具---自定義---命令選項(xiàng)卡---左邊選擇調(diào)試--右邊把異常托到菜單里? 快捷鍵Ctrl+Alt+E,修改Managed Debuggin Assistants->LoaderLock 的選中狀態(tài)去掉
方法二 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework下面增加一個(gè)String,值為"0" 不過(guò)這樣做,在該計(jì)算機(jī)上所有基于.NET2.0開(kāi)發(fā)都得不到MDA的好處。?
方法二 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework下面增加一個(gè)String,值為"0" 不過(guò)這樣做,在該計(jì)算機(jī)上所有基于.NET2.0開(kāi)發(fā)都得不到MDA的好處。?
轉(zhuǎn)載于:https://www.cnblogs.com/zjoch/archive/2011/01/10/1932167.html
總結(jié)
以上是生活随笔為你收集整理的正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码......的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 啼开头的成语有哪些啊?
- 下一篇: 个性签名网名分组大全