【问题标题】:CustomXMLParts.Add slow due to ContextSwitchDeadlock由于 ContextSwitchDeadlock,CustomXMLParts.Add 缓慢
【发布时间】: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


【解决方案1】:

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

previous stackoverflow answer

【讨论】:

    猜你喜欢
    • 2015-03-27
    • 2020-11-18
    • 2012-04-03
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 2021-04-27
    • 2013-11-20
    相关资源
    最近更新 更多