Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpCcPf 374 of 509 menu
◀ ▶

Parallel.For в C#

Метод Parallel.For делит диапазон индексов между потоками. У каждого потока своя частичная сумма, чтобы они не мешали друг другу на одном поле.

В конце частичные суммы сливают в общий результат. В примере это делает атомарное сложение, поэтому гонки на итоговой сумме нет.

Числа от 1 до 5 суммируются параллельно. Сумма 1+2+3+4+5 равна 15. Верхняя граница в вызове равна 6 и в диапазон не входит:

long sum = 0; Parallel.For(1, 6, () => 0L, (i, _, local) => local + i, local => Interlocked.Add(ref sum, local)); Console.WriteLine(sum); // выведет 15

Просуммируйте параллельно числа от 2 до 6 включительно. Частичные суммы собирайте по потокам и выведите общий результат.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить