.NET 4.x Срабатывание события при определенных условиях - C#

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

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

Нужно написать программу в которой реализируется логика движения автомобиля. В 20 часов ( if (j == 20) MaxSpeed() нужно чтобы сработало событие в котором записываем данные о авто и о дне гонок (tourInfo[name] = finishedPathLength; countAvtoEndDay++ в объект Dictionary<string, int> tourInfo = new Dictionary<string, int>();. Вот это и вызывает у меня сложность, так как этот объект оглашен на уровне функции Main. А логика движения обрабатывается в потоке. Помогите пожалуйста, подскажите как это можна реализовать.
Листинг программы
  1. class Car
  2. {
  3. public string name { get; set; }
  4. public int avgSpeed { get; set; }
  5. public int maintenance { get; set; }
  6. public int finishedPathLength { get; set; }
  7. public Car(string Name, int avgSpeed, int maintenance, int finishedPathLength)
  8. {
  9. this.name = name; this.avgSpeed = avgSpeed;
  10. this.maintenance = maintenance;
  11. this.finishedPathLength = finishedPathLength;
  12. }
  13. public Car()
  14. {
  15. this.name = string.Empty;
  16. this.avgSpeed = this.maintenance = this.finishedPathLength = 0;
  17. }
  18. }
  19. class Zaz : Car
  20. {
  21. public delegate void CarDelegate();
  22. public static event CarDelegate MaxSpeed;
  23. public Zaz() { }
  24. public Zaz(string Name, int avgSpeed, int maintenance, int finishedPathLength)
  25. {
  26. this.name = name; this.avgSpeed = avgSpeed;
  27. this.maintenance = maintenance;
  28. this.finishedPathLength = finishedPathLength;
  29. }
  30. public void Dvizg()
  31. {
  32. for (int i = 1; i <= 5; i++)
  33. {
  34. for (int j = 1; j <= 24; j++)
  35. {
  36. if (j == 20) MaxSpeed();
  37. }
  38. finishedPathLength += avgSpeed;
  39. Thread.Sleep(1000);
  40. }
  41. }
  42. }
  43. public static void MaxSpeed()
  44. {
  45. }
  46. }
  47. class Program
  48. {
  49. static void Main(string[] args)
  50. {
  51. int countAvtoEndDay = 0;
  52. Dictionary<string, int> tourInfo = new Dictionary<string, int>();
  53. Zaz z = new Zaz("Zaz", 100, 10, 0);
  54. Zaz.MaxSpeed += new Zaz.CarDelegate(Zaz.MaxSpeed());
  55. Thread myThreadMD1 = new Thread(z.Dvizg);
  56. myThreadMD1.Start();
  57. }
  58. }
  59. }

Решение задачи: «.NET 4.x Срабатывание события при определенных условиях»

textual
Листинг программы
  1. z.MaxSpeed += z.EventHandler;

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


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

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

12   голосов , оценка 4.167 из 5

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

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

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