Параллельные вычисления - C# (235507)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Нужно перебрать целые числа от

M

до

N

и найти первое попавшееся число, подходящее под условие. Это просто решить циклом от M до N. Но я хочу как-то ускорить процесс, распараллелив вычисления. Итоговое число не обязательно должно быть минимальным. Подходит любое из чисел из промежутка, удовлетворяющих условие. Подскажите как распараллелить этот цикл.

Решение задачи: «Параллельные вычисления»

textual
Листинг программы
using System;
using System.Threading.Tasks;
 
namespace ConsoleApplication7
{
    class Program
    {
        static void Main()
        {
            var res = NumberCheck.ReleaseCondition(0, 100500, x => x % 100200 == 0 && x != 0);
            Console.WriteLine(res);
            Console.ReadKey();
        }
    }
 
    static class NumberCheck
    {
        public static long? ReleaseCondition(long from, long to, Func<long, bool> condition)
        {
            var res = Parallel.For(from, to, (i, state) =>
                {
                    if (condition(i))
                        state.Break();
                });
            return res.LowestBreakIteration;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы