.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;