在调试C#vs 2017时会发生这种情况:检测到ContextSwitchDeadlock

时间:2018-11-09 19:51:08

标签: visual-studio-2017

在调试C#vs2017应用程序时会发生这种情况:

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

其他任何人都遇到了这种情况,并且知道让CLR忽略它的方法。毕竟,调试器可以控制,所以当然会有上下文切换死锁。

0 个答案:

没有答案