Radzhab
@Radzhab

Как сохранить порядок при распараллеливании?

Автоматизирую работу с "онлайн казино". Каждый запрос либо увеличивает мой кошелёк, либо уменьшает. (логично).Величина ставки статична. Но вот вопрос, если я делаю параллельно через Parallel.For - порядок путается. Подскажите что можно придумать

Parallel.For(0, 100, new ParallelOptions { MaxDegreeOfParallelism = 1}, (i) =>
{
    try
        {
            index++;
            var t = Get(i);
            
            var credit = t.Item1;
            var win = t.Item2;
 
            if (credit != 0.0)
            {
                rezlist.Add($"{D};{win};{credit}"); 
            }
         }
         
 
    catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
 
});
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ответы на вопрос 2
Отсортируйте результат так, как вам нужно по завершении процесса
Ответ написан
sarapinit
@sarapinit
Точу водой камень
Вообще у PLINQ есть возможность сохранять порядок.
Вот доки

Но меня смущает new ParallelOptions { MaxDegreeOfParallelism = 1} в вашем коде. Так как это превращает ваш параллельный код в абсолютно последовательный.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы