Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Parallel.For






 

Створимо консольний додаток

 

Рисунок 10. – Вікно створення консольного додатку

 

Створимо метод MaxNumber(), який би знаходив максимальне випадково-згенероване число:

 

static int Max=1;

static void Maxnumber(int c)

{

Random rnd = new Random();

int v = rnd.Next(0, c);

 

if (Max < v)

{

Max = v;

}

}

У методі Main () створимо цикл, який буде передавати значення змінної i в метод Maxnumber:

 

for (int i = 1; i < = 10000000; i++)

{

Maxnumber(i);

}

Console.WriteLine(" Максимальное число: {0} ", Max);

Console.ReadLine();

 

Запустимо програму. В результаті, через деякий час, відобразитися результат:


Рисунок 11. – Вікно результату

 

Тепер для того, щоб подивитися, скільки за часом відпрацьовується метод Maxnumber (), додамо в код стрічки:

 

System.Diagnostics.Stopwatch sw =

System.Diagnostics.Stopwatch.StartNew();

 

for (int i = 1; i < = 10000000; i++)

{

Maxnumber(i);

}

long elapsed = sw.ElapsedMilliseconds;

Console.WriteLine(" Время выполнения алгоритма в миллисекундах: {0}", elapsed);

Console.WriteLine(" Максимальное число: {0} ", Max);

Console.ReadLine();

 

Запустимо програму. В результаті відобразитися наступне:

Рисунок 12. – Результат виконання програми

 

Примітка. Як видно з результату, час виконання алгоритму складає ~ 50 секунд.

Підключимо директиву, для того що б використовувати цикл Parallel.For:

 

using System.Threading.Tasks

 

Тепер замінимо цикл for на Parallel.For, для того, що б метод Maxnumber, виконувався не послідовно, а асинхронно:

 

Parallel.For(1, 10000000, i =>

{

Maxnumber(i);

});

 

Запустимо програму. В результаті відобразиться наступне:

 

Рисунок 13. – Результат виконання програми


Примітка. Як видно з результату виконання програми, час виконання распараллеленного методу Maxnumber (), складе приблизно 31 секунду.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.