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

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

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

Нужно написать программу в которой реализируется логика движения автомобиля. В 20 часов ( if (j == 20) MaxSpeed() нужно чтобы сработало событие в котором записываем данные о авто и о дне гонок (tourInfo[name] = finishedPathLength; countAvtoEndDay++ в объект Dictionary<string, int> tourInfo = new Dictionary<string, int>();. Вот это и вызывает у меня сложность, так как этот объект оглашен на уровне функции Main. А логика движения обрабатывается в потоке. Помогите пожалуйста, подскажите как это можна реализовать.
class Car
    {
        public string name { get; set; }
        public int avgSpeed { get; set; }
        public int maintenance { get; set; }
        public int finishedPathLength { get; set; }
        public Car(string Name, int avgSpeed, int maintenance, int finishedPathLength)
        {
            this.name = name; this.avgSpeed = avgSpeed;
            this.maintenance = maintenance;
            this.finishedPathLength = finishedPathLength;
        }
        public Car()
        {
            this.name = string.Empty;
            this.avgSpeed = this.maintenance = this.finishedPathLength = 0;
        }     
 
    }   
 
    class Zaz : Car
    {
        public delegate void CarDelegate();
        public static event CarDelegate MaxSpeed;
        public Zaz() { }
        public Zaz(string Name, int avgSpeed, int maintenance, int finishedPathLength)
        {
            this.name = name; this.avgSpeed = avgSpeed;
            this.maintenance = maintenance;
            this.finishedPathLength = finishedPathLength;
        }
        public void Dvizg()
        {
            
            for (int i = 1; i <= 5; i++)
            {
                for (int j = 1; j <= 24; j++)
                {                                          
                    if (j == 20) MaxSpeed();
                    }
                                        
                    finishedPathLength += avgSpeed;
                    Thread.Sleep(1000);
                }
            }
        }
 
        public static void MaxSpeed()
        {
            
        } 
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            int countAvtoEndDay = 0;
            Dictionary<string, int> tourInfo = new Dictionary<string, int>();                                   
            Zaz z = new Zaz("Zaz", 100, 10, 0);
            Zaz.MaxSpeed += new Zaz.CarDelegate(Zaz.MaxSpeed());
            Thread myThreadMD1 = new Thread(z.Dvizg);
            myThreadMD1.Start();                     
        }
    }
}

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

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

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


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

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

12   голосов , оценка 4.167 из 5
Похожие ответы