CLR无法从COM上下文0x3b2d70转换到COM上下文

Vis*_*hnu 14 c#

在调试应用程序时,我收到以下错误.

CLR无法从COM上下文0x3b2d70过渡到COM上下文0x3b2ee0 60秒.拥有目标上下文/公寓的线程很可能是在非抽空等待或处理非常长时间运行的操作而不抽取Windows消息.这种情况通常会对性能产生负面影响,甚至可能导致应用程序变得无响应或内存使用量随时间不断累积.为了避免这个问题,所有单线程单元(STA)线程都应该使用抽取等待原语(例如CoWaitForMultipleHandles)并在长时间运行操作期间定期泵送消息.

为什么系统会抛出此错误.

Vis*_*hnu 17

我得到了解决方案

需要取消选中Debug-> Exceptions-> Managed Debugging Assistants下的ContextSwitchDeadlock.

取消选中ContextSwitchDeadlock后,它不会抛出错误.

  • 是的,因为VS**隐藏了它.这并不意味着问题就消失了! (52认同)
  • 只有比不知道为什么某些东西**不工作更糟糕的事情是不知道**为什么**工作. (2认同)
  • @Harry因为OP回答了他们自己的问题并接受了它. (2认同)
  • 这也是一周内给出的唯一答案.我有类似的问题,在调用包装Win32非托管代码的.NET框架内容时发生.我猜你能做的不多. (2认同)