日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

托管调试助手报错

發(fā)布時(shí)間:2023/11/27 生活经验 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 托管调试助手报错 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天在調(diào)試程序時(shí)出現(xiàn)下面的異常:

其他信息: CLR 無(wú)法從COM 上下文0x1a0e50 轉(zhuǎn)換為COM 上下文0x1a0fc0,這種狀態(tài)已持續(xù)60 秒。擁有目標(biāo)上下文/單元的線程很有可能執(zhí)行的是非泵式等待或者在不發(fā)送Windows 消息的情況下處理一個(gè)運(yùn)行時(shí)間非常長(zhǎng)的操作。這種情況通常會(huì)影響到性能,甚至可能導(dǎo)致應(yīng)用程序不響應(yīng)或者使用的內(nèi)存隨時(shí)間不斷累積。要避免此問(wèn)題,所有單線程單元(STA)線程都應(yīng)使用泵式等待基元(如CoWaitForMultipleHandles),并在運(yùn)行時(shí)間很長(zhǎng)的操作過(guò)程中定期發(fā)送消息。

通過(guò)代碼沒(méi)有找出異常,網(wǎng)上有人說(shuō)把,調(diào)試--異常中的contextswitchDeadlock選項(xiàng)去掉:

按照說(shuō)明去掉后確實(shí)沒(méi)有此問(wèn)題,但不明白出現(xiàn)這種情況的原因是代碼處理不恰當(dāng)造成的,還是說(shuō)編譯器有問(wèn)題,期待高手的賜教。

?

?

?

正試圖在 os 加載程序鎖內(nèi)執(zhí)行托管代碼。不要嘗試在 DllMain 或映像初始化函數(shù)內(nèi)運(yùn)行托管代碼,這樣做會(huì)導(dǎo)致應(yīng)用程序掛起

.NET2.0中增加了42種非常強(qiáng)大的調(diào)試助手(MDALoaderlock 是其中之一。Loaderlock檢測(cè)在一個(gè)擁有操作系統(tǒng)loader lock的線程上(如上例的video的運(yùn)行線程)運(yùn)行托管代碼的情況。這樣做有可能會(huì)引起死鎖,并且有可能在操作系統(tǒng)加載器初始化DLL前被使用。雖然這樣做很有必要,但在進(jìn)行開(kāi)發(fā)調(diào)試的時(shí)候,實(shí)在太麻煩

這是由于正在加載特定資源:例如換膚控件時(shí)

  • 辦法一
  1. 把vs2005菜單的 調(diào)試->異常->Managed Debuggin Assistants->LoaderLock 的選中狀態(tài)去掉
  2. 如果異常(exception)這一項(xiàng)沒(méi)有的話,在工具---自定義---命令選項(xiàng)卡---左邊選擇調(diào)試--右邊把異常托到菜單里
  3. 快捷鍵Ctrl+Alt+E,修改Managed Debuggin Assistants->LoaderLock 的選中狀態(tài)去掉
  • 方法二
  1. 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework下面增加一個(gè)String,值為"0"
    ??? 不過(guò)這樣做,在該計(jì)算機(jī)上所有基于.NET2.0開(kāi)發(fā)都得不到MDA的好處

轉(zhuǎn)載于:https://www.cnblogs.com/Allen_Jo/archive/2009/10/27/1590515.html

總結(jié)

以上是生活随笔為你收集整理的托管调试助手报错的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。