我正在以调试模式运行类似于以下代码的内容:
for (int i = 0; i < 5000; i++)
{
for (int j = 0; j < 10; j++)
{
DoSomething();
}
}
我经常在VS 2010中遇到“检测到ContextSwitchDeadlock”的提示。似乎可用的RAM越少性能就会下降。我有8GB内存,能够在约8分钟内运行程序(循环完成后有很多DB hits,所以8分钟不是循环时间),但在4GB机器上需要双倍的时间!根据我的阅读,MDA是因为我的循环运行时间超过了60秒而触发的。实质上,这是一个警告,表示代码完全阻塞了应用程序。
我该怎么做才能避免这些情况并提高速度呢?
谢谢!