我在 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 秒。从本质上讲,这是一个警告,表明代码正在完全阻止应用程序。
我该怎么做才能避免这些情况并提高速度?
谢谢!
最佳答案
您可以忽略该异常(对于长时间运行的方法,我自己之前就遇到过这种情况)。
- 按住
ctrl+alt+e
- 点击
查找
- 键入
ContextSwitchDeadlock
并按 Enter - 取消选中表中的
Thrown
- 按
OK
关闭Exceptions
配置窗口
关于c# - 检测到 ContextSwitchDeadlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9520678/