Параллельные вычисления - 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;
}
}
}