Определить время выполнения программы - C#
Формулировка задачи:
Вот задание
Вот написал код
но он не так работает
надо что бы выводил
Count of core : 2
A =...
время
B =
время-
Сейчас выводит
Count of core : 2
С = ..
время
С =...
время
Ско-ко времени будет выполняться при обработке программа выполняющая два фрагмента кода в разных потоках; три фрагмента в разных потоках и т.д., до N+1. Потоки при этом создавайте с использованием лямбда-выражений. Необходимо заблокировать выполнение основного процесса до завершения работы всех потоков.
Листинг программы
- using System;
- using System.Threading;
- namespace ConsoleApplication1
- {
- class Program
- {
- private static void Main(string[] args)
- {
- char[] abc = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'I'};
- Console.Write("Enter count of core = ");
- int n = int.Parse(Console.ReadLine());
- for (var i = 0; i < n; i++)
- {
- int j = 0;
- Console.WriteLine("count of core : " + (i+1));
- while (j <= i)
- {
- var t = new Thread(() =>
- {
- // начало фрагмента кода
- DateTime t1 = DateTime.Now;
- double x = 12345.6789;
- for (int l = 0; l < 10000; l++)
- for (int m = 0; m < 10000; m++)
- {
- x = Math.Sqrt(x);
- x = x + 0.000000001;
- x = Math.Pow(x, 2);
- }
- Console.WriteLine(abc[j] + ": " + x);
- DateTime t2 = DateTime.Now;
- Console.WriteLine(t2 - t1);
- // end
- }
- );
- t.Start();
- j++;
- }
- }
- Console.Read();
- Console.WriteLine("press any key");
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Определить время выполнения программы»
textual
Листинг программы
- using System;
- using System.Diagnostics;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Program
- {
- private static void Main(string[] args)
- {
- char[] abc = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'I' };
- Console.Write("Enter count of core = ");
- var tasks = new Task[int.Parse(Console.ReadLine())];
- for (var i = 0; i < tasks.Length; i++)
- {
- int j = i;
- tasks[i] = Task.Run(() =>
- {
- var sw = Stopwatch.StartNew();
- double x = 12345.6789;
- for (int l = 0; l < 100; l++)
- for (int m = 0; m < 100; m++)
- {
- x = Math.Sqrt(x);
- x = x + 0.000000001;
- x = Math.Pow(x, 2);
- }
- sw.Stop();
- Console.WriteLine("{0} : {1}\r\n{2}", abc[j], x, sw.Elapsed);
- });
- }
- Task.WaitAll(tasks);
- Console.WriteLine("press any key");
- Console.ReadKey();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д