コード例 #1
0
ファイル: Form1.cs プロジェクト: Marcinsirant/threadLock
        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);
                }
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: Marcinsirant/threadLock
        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);
                }
            }
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: Marcinsirant/threadLock
        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();
        }