public void wejdz_do_kolejki(Uzytkownik uzytkownik) { if (uzytkownik.Odbior == false) { this.Nadawca.Pocket = this; this.Nadawca.Paczkomat.Kolejka.Enqueue(this.Nadawca); if (this.Nadawca.Paczkomat.Numer == NumeryPaczkomatow.jeden) { this.form.Queue1.Invoke(new Action(delegate() { this.form.Queue1.Items.Add(this.Nadawca.Nazwa_Uzytkownika); })); } else if (this.Nadawca.Paczkomat.Numer == NumeryPaczkomatow.dwa) { this.form.Queue2.Invoke(new Action(delegate() { this.form.Queue2.Items.Add(this.Nadawca.Nazwa_Uzytkownika); })); } else if (this.Nadawca.Paczkomat.Numer == NumeryPaczkomatow.trzy) { this.form.Queue3.Invoke(new Action(delegate() { this.form.Queue3.Items.Add(this.Nadawca.Nazwa_Uzytkownika); })); } } else { this.Odbiorca.Pocket = this; this.Odbiorca.Paczkomat.Kolejka.Enqueue(this.Odbiorca); if (this.Odbiorca.Paczkomat.Numer == NumeryPaczkomatow.jeden) { this.form.Queue1.Invoke(new Action(delegate() { this.form.Queue1.Items.Add(this.Odbiorca.Nazwa_Uzytkownika); })); } else if (this.Odbiorca.Paczkomat.Numer == NumeryPaczkomatow.dwa) { this.form.Queue2.Invoke(new Action(delegate() { this.form.Queue2.Items.Add(this.Odbiorca.Nazwa_Uzytkownika); })); } else if (this.Odbiorca.Paczkomat.Numer == NumeryPaczkomatow.trzy) { this.form.Queue3.Invoke(new Action(delegate() { this.form.Queue3.Items.Add(this.Odbiorca.Nazwa_Uzytkownika); })); } } }
public Form1() { InitializeComponent(); object obj = new object(); this.paczkomat1_ = new Paczkomat(NumeryPaczkomatow.jeden, this); this.paczkomat2_ = new Paczkomat(NumeryPaczkomatow.dwa, this); this.paczkomat3_ = new Paczkomat(NumeryPaczkomatow.trzy, this); //Paczkomat1 this.u1 = new Uzytkownik(RodzajUzytkownika.nadawca, "Adam", paczkomat1_); //p1 this.u2 = new Uzytkownik(RodzajUzytkownika.nadawca, "Artur", paczkomat1_); //p2 this.u3 = new Uzytkownik(RodzajUzytkownika.odbiorca, "Andrzej", paczkomat1_); this.u4 = new Uzytkownik(RodzajUzytkownika.odbiorca, "Arkadiusz", paczkomat1_); //Paczkomat2 this.u5 = new Uzytkownik(RodzajUzytkownika.nadawca, "Bartek", paczkomat2_); //p3 this.u6 = new Uzytkownik(RodzajUzytkownika.nadawca, "Barbara", paczkomat2_); //p4 this.u7 = new Uzytkownik(RodzajUzytkownika.odbiorca, "Bożena", paczkomat2_); this.u8 = new Uzytkownik(RodzajUzytkownika.odbiorca, "Bogan", paczkomat2_); //Paczkomat3 this.u9 = new Uzytkownik(RodzajUzytkownika.nadawca, "Czarek", paczkomat3_); //p5 this.u10 = new Uzytkownik(RodzajUzytkownika.nadawca, "Celina", paczkomat3_); //p6 this.u11 = new Uzytkownik(RodzajUzytkownika.odbiorca, "Cezary", paczkomat3_); this.u12 = new Uzytkownik(RodzajUzytkownika.odbiorca, "Cecylia", paczkomat3_); this.p1_ = new Paczka(u1, u7, "Paczka 1", this); this.p2_ = new Paczka(u2, u11, "Paczka 2", this); this.p3_ = new Paczka(u5, u3, "Paczka 3", this); this.p4_ = new Paczka(u6, u12, "Paczka 4", this); this.p5_ = new Paczka(u9, u4, "Paczka 5", this); this.p6_ = new Paczka(u10, u8, "Paczka 6", this); t1 = new Thread(() => { this.p1_.wejdz_do_kolejki(u1); this.p2_.wejdz_do_kolejki(u2); this.p3_.wejdz_do_kolejki(u3); this.p5_.wejdz_do_kolejki(u4); }); t2 = new Thread(() => { this.p3_.wejdz_do_kolejki(u5); this.p4_.wejdz_do_kolejki(u6); this.p1_.wejdz_do_kolejki(u7); this.p6_.wejdz_do_kolejki(u8); }); t3 = new Thread(() => { this.p5_.wejdz_do_kolejki(u9); this.p6_.wejdz_do_kolejki(u10); this.p2_.wejdz_do_kolejki(u11); this.p4_.wejdz_do_kolejki(u12); }); t4 = new Thread(() => { while (true) { this.paczkomat1_.update_list_wys(); this.paczkomat2_.update_list_wys(); this.paczkomat3_.update_list_wys(); } }); t5 = new Thread(() => { try { Semafor.Semafor1.WaitOne(); for (int i = 0; i < 10; i++) { if (this.paczkomat1_.Kolejka.ElementAt(0) != null) { this.paczkomat1_.obsluga(); } } } finally { Semafor.Semafor1.Release(); } }); t6 = new Thread(() => { try { Semafor.Semafor2.WaitOne(); for (int i = 0; i < 10; i++) { if (this.paczkomat2_.Kolejka.ElementAt(0) != null) { this.paczkomat2_.obsluga(); } } } finally { Semafor.Semafor2.Release(); } }); t7 = new Thread(() => { try { Semafor.Semafor3.WaitOne(); for (int i = 0; i < 10; i++) { if (this.paczkomat3_.Kolejka.ElementAt(0) != null) { this.paczkomat3_.obsluga(); } } } finally { Semafor.Semafor3.Release(); } }); t8 = new Thread(() => { try { Semafor.Semafor1.WaitOne(); while (this.paczkomat1_.ListWys.Capacity != 0) { this.paczkomat1_.kurier_job(); } } finally { Semafor.Semafor1.Release(); } }); t9 = new Thread(() => { try { Semafor.Semafor2.WaitOne(); while (this.paczkomat2_.ListWys.Capacity != 0) { this.paczkomat2_.kurier_job(); } } finally { Semafor.Semafor2.Release(); } }); t10 = new Thread(() => { try { Semafor.Semafor3.WaitOne(); while (this.paczkomat3_.ListWys.Capacity != 0) { this.paczkomat3_.kurier_job(); } } finally { Semafor.Semafor3.Release(); } }); }