c# - 检测到 ContextSwitchDeadlock

标签 c# visual-studio debugging visual-studio-debugging

我在 Debug模式下运行类似于以下代码的内容:

for (int i = 0; i < 5000; i++)
{
   for (int j = 0; j < 10; j++)
   {
     DoSomething();
   }
}

我有时会收到来自 VS 2010 的“检测到 ContextSwitchDeadlock”。似乎性能会随着可用 RAM 的减少而降低。我有 8GB 并且能够在大约 8 分钟内运行该程序(循环完成后有很多数据库命中,所以 8 分钟不是循环时间),在 4GB 机器上时间加倍!从我的红色来看,MDA 被触发是因为我的循环运行时间超过 60 秒。从本质上讲,这是一个警告,表明代码正在完全阻止应用程序。

我该怎么做才能避免这些情况并提高速度?

谢谢!

最佳答案

您可以忽略该异常(对于长时间运行的方法,我自己之前就遇到过这种情况)。

  1. 按住 ctrl+alt+e
  2. 点击查找
  3. 键入 ContextSwitchDeadlock 并按 Enter
  4. 取消选中表中的Thrown
  5. OK 关闭 Exceptions 配置窗口

关于c# - 检测到 ContextSwitchDeadlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9520678/

相关文章:

c# - 查找特定子字符串中匹配的多个组

c# - 使用 Entity Framework 更新外键

visual-studio - Visual Studio 'packages' 元素未声明警告

php - 上载图片错误

javascript - Visual Studio Code,调试 Node - 我怎样才能打到这个 'Unverified Breakpoint' ?

c# - View 中的 ASP.Net MVC 多重继承

c# - Form_Load 事件不会在从另一个表单类继承的表单上触发

visual-studio - docker在Visual Studio中运行的命令在哪里

c# - 在设计时使用类的全名查找类的类型

debugging - MvvmLight打印消息进行调试