異常CLR無法從COM上下文轉換這種狀態已持續60秒?

除錯程式出現異常資訊:CLR 無法從 COM 上下文 0x580798 轉換為 COM 上下文 0x580850,這種狀態已持續 60 秒。擁有目標上下文/單元的執行緒很有可能執行的是非泵式等待或者在不傳送 Windows 訊息的情況下處理一個執行時間非常長的操作。這種情況通常會影響到效能,甚至可能導致應用程式不響應或者使用的記憶體隨時間不斷累積。要避免此問題,所有單執行緒單元(STA)執行緒都應使用泵式等待基元(如 CoWaitForMultipleHandles),並在執行時間很長的操作過程中定期傳送訊息。解決方法如下

異常CLR無法從COM上下文轉換這種狀態已持續60秒

工具/原料

Visual studio

方法/步驟

提示錯誤資訊如圖

異常CLR無法從COM上下文轉換這種狀態已持續60秒

在除錯(選單)Debug-->異常Exceptions

異常CLR無法從COM上下文轉換這種狀態已持續60秒

Managed Debug Assistants裡

異常CLR無法從COM上下文轉換這種狀態已持續60秒

選擇ContextSwitchDeadlock一項

異常CLR無法從COM上下文轉換這種狀態已持續60秒

去掉ContextSwitchDeadlock一項前面的鉤

異常CLR無法從COM上下文轉換這種狀態已持續60秒

搞定

異常CLR無法從COM上下文轉換這種狀態已持續60秒

相關問題答案