public void Run(int currentTime, Chanel chanel) { if (currentTime >= timeForSend) { //если возникла коллизия при нашей отправке тогда надо отложить отправку на небольшое время if (collision && sendPackege > 0) { timeForSend += random.Next(0, 20); Console.WriteLine("Прервала отправку, станция {0}", id); collision = false; sendPackege = 0; return; } if (sendPackege == packege) { Console.WriteLine("Отправка завершена, станция {0}", id); timeForSend += random.Next(1, 100); sendPackege = 0; } collision = false; Console.WriteLine("Отправка пакета, станция {0}", id); chanel.Send(this.id); sendPackege++; } }
static void Main(string[] args) { Chanel chanel = new Chanel(5); while (true) { chanel.tick(); } }