private void startButton_Click(object sender, EventArgs e) { Samochod.setForm(this); Random random = new Random(); for (int i = 0; i < 50; i++) { Samochod samochod = new Samochod("Samochod." + i); Console.WriteLine("Samochod {0} UTWORZONY", samochod.nazwa); int r = random.Next(0, 6) % 3; //Thread.Sleep(100); if (r == 1) { StacjaDiagnostyczna.kolejkaDoStacjiDiagnostycznej.Enqueue(samochod); dodajDokolejki(samochod.nazwa, kolDiagnostyka); } else if (r == 2) { StacjaLakierniczoBlacharska.kolejkaDoBlacha.Enqueue(samochod); dodajDokolejki(samochod.nazwa, kolBlach); } else { MechanikSamochodowy.dodajDoKolejki(samochod); dodajDokolejki(samochod.nazwa, kolMechanik); } } }
public void obsluga() { Samochod samDoObslugi; Random rand = new Random(); while (true) { if (kolejkaDoStacjiDiagnostycznej.Count != 0) { samDoObslugi = kolejkaDoStacjiDiagnostycznej.Dequeue(); Samochod.form.usunZkolejkiDia(samDoObslugi.nazwa); Samochod.form.dodDiagnostyka(samDoObslugi.nazwa); Thread.Sleep(2200); Console.WriteLine("Samochod {0} pobrany do stacji diagnostycznej={1}", samDoObslugi.nazwa, nazwa); if (rand.Next(0, 3) == 1) { samDoObslugi.uprzywilejowany = 1; Console.WriteLine("Samochod {0} ze stacji diagnostycznej={1} do kolejki uprzywilejowanej", samDoObslugi.nazwa, nazwa); Samochod.form.dodajDokolejkiMechP(samDoObslugi.nazwa); MechanikSamochodowy.dodajDoKolejki(samDoObslugi); } else { Console.WriteLine("Samochod {0} sprawdzony w stacji diagnostycznej={1} WSZYSTKO OK", samDoObslugi.nazwa, nazwa); } Samochod.form.usuDiagnostyka(samDoObslugi.nazwa); } } }
private void Form1_Load(object sender, EventArgs e) { MechanikSamochodowy mechanik1 = new MechanikSamochodowy("Mechanik1"); MechanikSamochodowy mechanik2 = new MechanikSamochodowy("Mechanik2"); StacjaDiagnostyczna stacjaDiagnostyczna = new StacjaDiagnostyczna("Stacja diagnostyczna1"); StacjaLakierniczoBlacharska stacjaLakierniczoBlacharska = new StacjaLakierniczoBlacharska("Stacja Lakierniczo Blacharska1"); Thread t = new Thread(new ThreadStart(mechanik1.obsluga)); Thread t1 = new Thread(new ThreadStart(mechanik2.obsluga)); Thread t2 = new Thread(new ThreadStart(stacjaDiagnostyczna.obsluga)); Thread t3 = new Thread(new ThreadStart(stacjaLakierniczoBlacharska.obsluga)); t.Start(); t1.Start(); t2.Start(); t3.Start(); }