【求助】调用Parallel.For/Foreach方法时如何使每一个body独立运行不共享中间变量?
先看一下例子:static void Main(string[] args)
{
long total = 0;
Parallel.For<Parameter>(
0,
10,
() =>
{
Parameter a = new Parameter(); ;
return a;
},
(j, loop, abc) =>
{
abc.a = j;
abc.b = j;
abc.c = abc.a + abc.b;
return abc;
},
(x) => total += x.c
);
Console.WriteLine("The total is {0}", total);
Console.ReadKey();
}
struct Parameter
{
public int a;
public int b;
public int c;
}
理想的运算结果应该为:90
但实际的运算结果却是16、18、22...每次运算结果都不一样 --------------------编程问答-------------------- 自己顶上去!等待求解!!!
补充:.NET技术 , C#