C# VisualStudio变得滞后,并且冻结了太多的并行循环
我们在VisualStudio中发现了一个非常奇怪的问题 如果将超过6个或更多的并行循环放入彼此中,VisualStudio将变得非常滞后 如果您单击进入循环,并尝试滚动,或尝试单击循环外部,然后再次单击进入循环,VS将冻结5-10秒。 对于简单循环,这个问题永远不会发生,所以我们认为问题在于,在并行循环的情况下,我们有动作,这可能会杀死IDE 我们已经用VS2012和VS2013对其进行了测试,结果是一样的 以下是我的例子:C# VisualStudio变得滞后,并且冻结了太多的并行循环,c#,.net,visual-studio,loops,parallel.foreach,C#,.net,Visual Studio,Loops,Parallel.foreach,我们在VisualStudio中发现了一个非常奇怪的问题 如果将超过6个或更多的并行循环放入彼此中,VisualStudio将变得非常滞后 如果您单击进入循环,并尝试滚动,或尝试单击循环外部,然后再次单击进入循环,VS将冻结5-10秒。 对于简单循环,这个问题永远不会发生,所以我们认为问题在于,在并行循环的情况下,我们有动作,这可能会杀死IDE 我们已经用VS2012和VS2013对其进行了测试,结果是一样的 以下是我的例子: using System; using System.Collect
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static List<string> _list = new List<string>();
static void Main(string[] args)
{
Parallel.ForEach(_list, element1 =>
{
Parallel.ForEach(_list, element2 =>
{
Parallel.ForEach(_list, element3 =>
{
Parallel.ForEach(_list, element4 =>
{
Parallel.ForEach(_list, element5 =>
{
Parallel.ForEach(_list, element6 =>
{
Parallel.ForEach(_list, element7 =>
{
});
});
});
});
});
});
});
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
命名空间控制台应用程序1
{
班级计划
{
静态列表_List=新列表();
静态void Main(字符串[]参数)
{
Parallel.ForEach(_list,element1=>
{
Parallel.ForEach(_list,element2=>
{
Parallel.ForEach(_list,element3=>
{
Parallel.ForEach(_list,element4=>
{
Parallel.ForEach(_list,element5=>
{
Parallel.ForEach(_list,element6=>
{
Parallel.ForEach(_list,element7=>
{
});
});
});
});
});
});
});
}
}
}
如果有人有类似的问题,并且知道解决方案,请回答 我想整个系统都有问题。看起来像是一个bug(或者“限制”),你应该在微软提交一份报告。连接,看看结果如何。有5个循环,它就不起作用了?是的,如果你只使用5个或更少,就没有延迟,IDE的响应和往常一样。我看到了。对此我们无能为力,您可以在connect.microsoft.com上提交反馈报告。如果您迫不及待,请联系Microsoft支持。不要期待任何奇迹,这不太可能是容易修复的。否则会强烈暗示您做错了,没有人编写这样的代码,这会在运行时导致线程的疯狂爆炸,而这不太可能由于线程池耗尽而死锁。这个问题似乎离题了,因为它与visual studio bug有关