Определить время выполнения программы - C#

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

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

Вот задание
Ско-ко времени будет выполняться при обработке программа выполняющая два фрагмента кода в разных потоках; три фрагмента в разных потоках и т.д., до N+1. Потоки при этом создавайте с использованием лямбда-выражений. Необходимо заблокировать выполнение основного процесса до завершения работы всех потоков.
Вот написал код
Листинг программы
  1. using System;
  2. using System.Threading;
  3. namespace ConsoleApplication1
  4. {
  5. class Program
  6. {
  7. private static void Main(string[] args)
  8. {
  9. char[] abc = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'I'};
  10. Console.Write("Enter count of core = ");
  11. int n = int.Parse(Console.ReadLine());
  12. for (var i = 0; i < n; i++)
  13. {
  14. int j = 0;
  15. Console.WriteLine("count of core : " + (i+1));
  16.  
  17. while (j <= i)
  18. {
  19. var t = new Thread(() =>
  20. {
  21. // начало фрагмента кода
  22. DateTime t1 = DateTime.Now;
  23. double x = 12345.6789;
  24. for (int l = 0; l < 10000; l++)
  25. for (int m = 0; m < 10000; m++)
  26. {
  27. x = Math.Sqrt(x);
  28. x = x + 0.000000001;
  29. x = Math.Pow(x, 2);
  30. }
  31. Console.WriteLine(abc[j] + ": " + x);
  32. DateTime t2 = DateTime.Now;
  33. Console.WriteLine(t2 - t1);
  34. // end
  35. }
  36. );
  37. t.Start();
  38. j++;
  39. }
  40. }
  41. Console.Read();
  42. Console.WriteLine("press any key");
  43. Console.ReadKey();
  44. }
  45. }
  46. }
но он не так работает надо что бы выводил Count of core : 2 A =... время B = время- Сейчас выводит Count of core : 2 С = .. время С =... время

Решение задачи: «Определить время выполнения программы»

textual
Листинг программы
  1. using System;
  2. using System.Diagnostics;
  3. using System.Threading.Tasks;
  4.  
  5. namespace ConsoleApplication1
  6. {
  7.     class Program
  8.     {
  9.         private static void Main(string[] args)
  10.         {
  11.             char[] abc = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'I' };
  12.  
  13.             Console.Write("Enter count of core = ");
  14.             var tasks = new Task[int.Parse(Console.ReadLine())];
  15.  
  16.             for (var i = 0; i < tasks.Length; i++)
  17.             {
  18.                 int j = i;
  19.                 tasks[i] = Task.Run(() =>
  20.                                     {
  21.                                         var sw = Stopwatch.StartNew();
  22.                                         double x = 12345.6789;
  23.                                         for (int l = 0; l < 100; l++)
  24.                                             for (int m = 0; m < 100; m++)
  25.                                             {
  26.                                                 x = Math.Sqrt(x);
  27.                                                 x = x + 0.000000001;
  28.                                                 x = Math.Pow(x, 2);
  29.                                             }
  30.                                         sw.Stop();
  31.                                         Console.WriteLine("{0} : {1}\r\n{2}", abc[j], x, sw.Elapsed);
  32.                                     });
  33.             }
  34.             Task.WaitAll(tasks);
  35.             Console.WriteLine("press any key");
  36.             Console.ReadKey();
  37.         }
  38.     }
  39. }

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


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

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

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы