У меня есть цикл foreach
, который я распараллеливаю, и я заметил что-то странное. Код выглядит как
double sum = 0.0;
Parallel.ForEach(myCollection, arg =>
{
sum += ComplicatedFunction(arg);
});
// Use sum variable below
Когда я использую обычный цикл foreach
, я получаю разные результаты. Внутри ComplicatedFunction
может быть что-то еще глубже, но возможно, что переменная sum
подвержена неопределенному влиянию распараллеливания?