C# 解决【托管调试助手 “ContextSwitchDeadlock“:……】问题
文章目录
- 一、遇到问题
- 二、解决办法
一、遇到问题
托管调试助手 “ContextSwitchDeadlock”:“CLR 无法从 COM 上下文 0x56e81e70 转换为 COM 上下文 0x56e81d48,这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作。这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积。要避免此问题,所有单线程单元(STA)线程都应使用泵式等待基元(如 CoWaitForMultipleHandles),并在运行时间很长的操作过程中定期发送消息。”
二、解决办法
- 打开异常设置:快捷键 Ctrl + Alt + E,
- 打开“Managed Debugging Assistants”节点
- 取消选中“ContextSwitchDeadlock”选项
若觉得文章对你有帮助,随手『点赞』、『收藏』、『关注』,也是对我的支持。