【发布时间】:2016-12-07 02:48:47
【问题描述】:
我得到了一个
上下文切换死锁
在执行Documents.Add() 后添加CustomXMLPart 时。
上周同样的代码运行良好..
我了解 ContextSwitchDeadlock 是由长时间运行的操作引起的(这不是重复的问题)。 为什么 CustomXMLParts.Add() 命令会导致长时间运行的操作?
有人遇到过这个吗?以及如何解决问题的任何想法?
发生 ContextSwitchDeadlock 消息:托管调试助手 “ContextSwitchDeadlock”在“C:\Program Files”中检测到问题 (x86)\Microsoft Office\root\Office16\WINWORD.EXE'。额外的 信息:CLR 无法从 COM 上下文转换 0xfdb520 到 COM 上下文 0xfdb468 持续 60 秒。拥有的线程 目标上下文/公寓很可能要么做一个非 抽水等待或处理一个非常长时间运行的操作,而无需 抽 Windows 消息。这种情况一般有负面 性能影响,甚至可能导致应用程序变得非 随着时间的推移,响应或内存使用量不断累积。到 避免这个问题,所有单线程单元(STA)线程都应该 使用抽水等待原语(例如 CoWaitForMultipleHandles)和 在长时间运行的操作期间定期发送消息。
【问题讨论】:
-
Meganaut - 更新问题以解释它不是重复的
-
这只是猜测,没有更多信息。您至少应该尝试显示一些围绕问题的代码,否则最好用最紧凑的代码重新创建问题并将其添加到问题中。我的直觉是你加载了一个非常大或复杂的文件。
-
谢谢。是的,XML 比我预期的要大很多。
标签: c# visual-studio ms-word vsto