檢測到 ContextSwitchDeadlock 問題的解決辦法!


CLR 無法從 COM 上下文 0x1a2740 轉換爲 COM 上下文 0x1a28b0,這種狀態已持續 60 秒。擁有目標上下文/單元的線程很有可能執行的是非泵式等待或者在不發送 Windows 消息的情況下處理一個運行時間非常長的操作。這種情況通常會影響到性能,甚至可能導致應用程序不響應或者使用的內存隨時間不斷累積。要避免此問題,所有單線程單元(STA)線程都應使用泵式等待基元(如 CoWaitForMultipleHandles),並在運行時間很長的操作過程中定期發送消息。

 如果出現這個提示,點擊在調試菜單中的異常選項,在Managed Debugging Assistants 中將ContextSwitchDeadlock後面的第一個勾給去掉就可以了。

發佈了20 篇原創文章 · 獲贊 4 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章