2016-12-07 39 views
0

CustomXMLParts.Add緩慢進行Documents.Add()後加入CustomXMLPart時,我得到一個由於ContextSwitchDeadlock

ContextSwitchDeadlock

相同的代碼上週罰款的工作..

我明白ContextSwitchDeadlock由長時間運行的操作引起的(這不是一個重複的問題)。 爲什麼CustomXMLParts.Add()命令會導致長時間運行?

有人遇到過嗎?和任何想法如何排除故障?

ContextSwitchDeadlock發生消息:託管調試助手 'ContextSwitchDeadlock' 已檢測到 'C:\ Program Files文件 (86)\的Microsoft Office \ ROOT \ Office16 \ WINWORD.EXE' 的問題。額外的 信息:CLR已經無法從COM上下文 0xfdb520轉換到COM上下文0xfdb468 60秒。擁有 目的地上下文/公寓的線程最有可能在執行非等待處理或處理非常長的運行操作,而無需 抽取Windows消息。這種情況通常會對性能產生負面影響,甚至可能導致應用程序變爲非響應或內存使用持續累積。至 爲避免這個問題,所有的單線程單元(STA)線程應該使用抽取等待原語(如CoWaitForMultipleHandles)和在長時間運行操作期間例行地抽取消息。

+0

[Visual Studio中:ContextSwitchDeadlock]的可能的複製(http://stackoverflow.com/questions/578357/visual-studio-contextswitchdeadlock) – meganaut

+0

Meganaut - 問題更新的解釋,這不是重複 –

+0

這只是一個猜測,沒有更多的信息。你至少應該試着展示一些圍繞這個問題的代碼,否則理想的情況是用最簡潔的代碼重新創建問題,並將其添加到問題中。我的直覺是你已經加載了一個非常大或複雜的文件。 – meganaut

回答

0

當調試長時間運行的進程時,上下文切換死鎖可能顯示出來。大多數情況下,如果預計流程需要長時間運行,您可以忽略它。

看到previous stackoverflow answer