小编use*_*134的帖子

parallel.foreach有效,但为什么呢?

谁能解释一下,为什么这个程序返回sqrt_min的正确值?

int n = 1000000;

double[] myArr = new double[n];
for(int i = n-1 ; i>= 0; i--){ myArr[i] = (double)i;}

// sqrt_min contains minimal sqrt-value
double sqrt_min = double.MaxValue;

Parallel.ForEach(myArr, num =>
{
double sqrt = Math.Sqrt(num); // some time consuming calculation that should be parallized
if(sqrt < sqrt_min){ sqrt_min = sqrt;}
});
Console.WriteLine("minimum: "+sqrt_min);
Run Code Online (Sandbox Code Playgroud)

.net c# thread-safety race-condition parallel.foreach

7
推荐指数
2
解决办法
1706
查看次数