【发布时间】:2014-05-13 05:19:41
【问题描述】:
我面临一个引发以下异常的奇怪问题。
CLR 在 60 秒内无法从 COM 上下文 0x22f3090 转换到 COM 上下文 0x22f32e0。拥有目标上下文/单元的线程很可能要么进行非泵送等待,要么处理非常长时间运行的操作而不泵送 Windows 消息。这种情况通常会对性能产生负面影响,甚至可能导致应用程序变得无响应或内存使用量随着时间的推移不断累积。为避免此问题,所有单线程单元 (STA) 线程都应使用泵送等待原语(例如 CoWaitForMultipleHandles)并在长时间运行的操作期间定期泵送消息。
所以,我很想知道它在 wpf 中的可能原因。截至目前,我正在执行导致此问题的操作所以,我放了秒表并检查我的代码的时间,但我的代码没有花时间执行,而是由运行时框架占用。我知道我的代码可能做错了什么。所以,我很想知道这种错误的可能原因..目前调用该操作需要5分钟以上,甚至操作非常简单
【问题讨论】:
-
或以任何方式在代码中追踪引入此问题的根本原因
-
您应该发布导致此异常的代码。
-
其实,我不知道是哪段代码在做的,我也想知道。
-
嗯,你是说,当你“执行一个非常简单的操作”时会发生这种情况。因此,它或您执行它的方式显然有问题。我严重怀疑这是 WPF 问题,更有可能是您编写的内容。
-
发布您的代码。没有看到它是不可能调试任何东西的:)
标签: c# .net wpf multithreading clr