在调试C#vs2017应用程序时会发生这种情况:
检测到ContextSwitchDeadlock 消息:CLR在60秒钟内无法从COM上下文0x16a300过渡到COM上下文0x16a020。拥有目标上下文/公寓的线程很可能要么执行非泵送等待,要么处理很长时间运行的操作而不泵送Windows消息。这种情况通常会对性能产生负面影响,甚至可能导致应用程序变得无响应或内存使用量随时间不断累积。为避免此问题,所有单线程单元(STA)线程都应使用泵送等待原语(例如CoWaitForMultipleHandles),并在长时间运行的操作中定期泵送消息。
其他任何人都遇到了这种情况,并且知道让CLR忽略它的方法。毕竟,调试器可以控制,所以当然会有上下文切换死锁。