由于ContextSwitchDeadlock,CustomXMLParts.Add变慢

时间:2016-12-07 02:48:48

标签: c# visual-studio ms-word vsto

我得到了

  

ContextSwitchDeadlock

在执行CustomXMLPart后添加Documents.Add()

上周同样的代码工作正常..

我知道ContextSwitchDeadlock是由长时间运行的操作引起的(这不是一个重复的问题)。 为什么CustomXMLParts.Add()命令会导致长时间运行?

有人碰到过这个吗?以及如何排除故障的任何想法?

  

发生ContextSwitchDeadlock消息:托管调试助手   'ContextSwitchDeadlock'在'C:\ Program Files中检测到问题   (x86)\ Microsoft Office \ root \ Office16 \ WINWORD.EXE'。额外   信息:CLR无法从COM上下文转换   0xfdb520到COM上下文0xfdb468 60秒。拥有的线程   目的地上下文/公寓最有可能做非   抽空等待或处理很长时间的运行操作   抽取Windows消息。这种情况一般都是消极的   性能影响甚至可能导致应用程序变为非   响应或内存使用随着时间的推移不断累积。至   避免这个问题,所有单线程单元(STA)线程都应该   使用抽取等待原语(如CoWaitForMultipleHandles)和   在长时间运行期间定期泵送消息。

1 个答案:

答案 0 :(得分:0)

调试长时间运行的进程时,可能会显示上下文切换死锁。在大多数情况下,如果预计该过程会长时间运行,您可以忽略它。

请参阅previous stackoverflow answer