2011年10月23日 星期日

#VB ContextSwitchDeadLock 長時間運算,造成停止回應

請問執行大量運算所造成的程式(沒有回應)該如何解決? 
http://www.programmer-club.com.tw/ShowSameTitleN/csharp/10583.html

http://www.dotblogs.com.tw/dennismao/archive/2010/01/11/12957.aspx

偵測到 ContextSwitchDeadlock
Message: CLR 在過去 60 秒一直無法從 COM 內容 0x2aadd8 轉換為 COM 內容 0x2aaf48。擁有該目的內容/Apartment 的執行緒,很可能正在進行非提取等候或正在處理非常長的執行作業,而未提取 Windows 訊息。這種情況通常會對效能產生負面影響,甚至可能導致應用程式停止回應,或導致記憶體使用量持續隨時間而累積。若要避免這個問題,所有單一執行緒的 Apartment (STA) 執行緒都應該使用提取等候基本方法 (例如 CoWaitForMultipleHandles),並且在長時間的執行作業中定期提取訊息。

沒有留言:

張貼留言