Je regarde juste les nouvelles fonctionnalités .NET 4.0. Avec cela, j'essaie un calcul simple en utilisant Parallel.For
et une boucle normale for(x;x;x)
.
Cependant, j'obtiens des résultats différents environ 50% du temps.
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());
Je suppose que les threads essaient de mettre à jour "sum" en même temps.
Y a-t-il un moyen évident de contourner cela?