我有一台8核CPU机器,内存为8 GB。逻辑上,以下代码可以并行完成,但由于循环暴露了足够的并行机会,因为我可用的核心数远少于循环的大小。其次,每个委托表达式都会分配一些内存来保存自由变量。 在这种情况下,是否建议使用parallel?
也会将2个并行分为2个任务,在这种情况下提高性能??
private static void DoWork()
{
int end1 = 100; // minimum of 100 values;
int end2 = 100; // minimum of 100 values;
Task a = Task.Factory.StartNew(
delegate
{
Parallel.For(0, end1, delegate(int i)
{
// independent work
});
}
);
Task b = Task.Factory.StartNew(
delegate
{
Parallel.For(0, end2, delegate(int i)
{
// independent work
});
}
);
a.Wait();
b.Wait();
}
答案 0 :(得分:1)
答案 1 :(得分:1)
也会将2个parralel分为2个任务,在这种情况下提高性能?
不明显,您可能很容易损害性能。
TPL专门用于提供负载平衡,让它发挥作用。
您关心的要点是: