相关疑难解决方法(0)

Parallel.For():在循环外更新变量

我只是在研究新的.NET 4.0功能.有了这个,我正在尝试使用Parallel.For和正常for(x;x;x)循环进行简单的计算.

但是,我有50%的时间得到不同的结果.

long sum = 0;

Parallel.For(1, 10000, y =>
    {
        sum += y;
    }
);

Console.WriteLine(sum.ToString());

sum = 0;

for (int y = 1; y < 10000; y++)
{
   sum += y;
}
Console.WriteLine(sum.ToString());
Run Code Online (Sandbox Code Playgroud)

我的猜测是线程正在尝试同时更新"sum".
有明显的方法吗?

.net c# parallel-processing .net-4.0

35
推荐指数
3
解决办法
2万
查看次数

标签 统计

.net ×1

.net-4.0 ×1

c# ×1

parallel-processing ×1