【发布时间】:2013-03-13 22:15:38
【问题描述】:
我在嵌套的parallel.foreach 中有一个变量 (cnt)。我运行这个程序,显然它运行良好。有人知道这段代码真的是线程安全的吗?是否可以在parallel 循环中定义变量?
谢谢。
object obj = new object();
int total=0;
Parallel.For(0, 2, i =>
{
Parallel.For(0, 1000000, j =>
{
int cnt = 0;
if ((arr[i, j] % 2) == 0)
{
Interlocked.Increment(ref cnt);
}
lock (obj)
{
total= total+ (cnt / 2);
}
});
});
【问题讨论】:
标签: c# parallel-processing parallel.foreach