Beispiel #1
0
    public Form2()
    {
        InitializeComponent();


        semaphoreS1      = new Semaphore();
        semaphoreS2      = new Semaphore();
        semaphoreS3      = new Semaphore();
        semaphoreSReady  = new Semaphore();
        semaphoreSRunway = new Semaphore();

        buffer_section1 = new Buffer();
        buffer_section2 = new Buffer();
        buffer_section3 = new Buffer();
        buffer_sReady   = new Buffer();
        buffer_sRunway  = new Buffer();

        blue_counter = new ButtonPanelThread(new Point(10, 30),
                                             120, "down", blueBase,
                                             Color.Blue,
                                             semaphoreS1,
                                             buffer_section1,
                                             btn_BlueBase, 9);

        p2 = new WaitPanelThread(new Point(10, 10),
                                 100, "right", section1,
                                 Color.White,
                                 semaphoreS1,
                                 buffer_section1, 12, buffer_section2, semaphoreS2);


        red_counter = new ButtonPanelThread(new Point(10, 30),
                                            100, "down", redBase,
                                            Color.Red,
                                            semaphoreS2,
                                            buffer_section2,
                                            btn_RedBase, 9);

        p4 = new WaitPanelThread(new Point(10, 10),
                                 100, "right", section2,
                                 Color.White,
                                 semaphoreS2,
                                 buffer_section2, 12, buffer_section3, semaphoreS3);

        green_counter = new ButtonPanelThread(new Point(10, 30),
                                              100, "down", greenBase,
                                              Color.Green,
                                              semaphoreS3,
                                              buffer_section3,
                                              btn_greenBase, 9);

        p6 = new WaitPanelThread(new Point(10, 10),
                                 100, "down", section3,
                                 Color.White,
                                 semaphoreS3,
                                 buffer_section3, 12, buffer_sReady, semaphoreSReady);

        ready_counter = new ButtonPanelThread(new Point(100, 0),
                                              120, "left", section_ready,
                                              Color.Blue,
                                              semaphoreSRunway,
                                              buffer_sRunway,
                                              btn_ready, 9);

        p8 = new WaitPanelThread(new Point(390, 10),
                                 100, "left", section_runway,
                                 Color.White,
                                 semaphoreSRunway,
                                 buffer_sRunway, 38, buffer_sRunway, semaphoreSRunway);

        semThreadS1  = new Thread(new ThreadStart(semaphoreS1.Start));
        buffThreadS1 = new Thread(new ThreadStart(buffer_section1.Start));

        semThreadS2  = new Thread(new ThreadStart(semaphoreS2.Start));
        buffThreadS2 = new Thread(new ThreadStart(buffer_section2.Start));

        semThreadS3  = new Thread(new ThreadStart(semaphoreS3.Start));
        buffThreadS3 = new Thread(new ThreadStart(buffer_section3.Start));

        semThreadSReady  = new Thread(new ThreadStart(semaphoreSReady.Start));
        buffThreadSReady = new Thread(new ThreadStart(buffer_sReady.Start));

        semThreadSRunway  = new Thread(new ThreadStart(semaphoreSRunway.Start));
        buffThreadSRunway = new Thread(new ThreadStart(buffer_sRunway.Start));



        thread1 = new Thread(new ThreadStart(blue_counter.Start));
        thread2 = new Thread(new ThreadStart(p2.Start));
        thread3 = new Thread(new ThreadStart(red_counter.Start));
        thread4 = new Thread(new ThreadStart(p4.Start));
        thread5 = new Thread(new ThreadStart(green_counter.Start));
        thread6 = new Thread(new ThreadStart(p6.Start));
        thread7 = new Thread(new ThreadStart(ready_counter.Start));
        thread8 = new Thread(new ThreadStart(p8.Start));

        this.Closing += new CancelEventHandler(this.Form1_Closing);

        semThreadS1.Start();
        buffThreadS1.Start();
        semThreadS2.Start();
        buffThreadS2.Start();
        semThreadS3.Start();
        buffThreadS3.Start();
        semaphoreSReady.Start();
        buffThreadSReady.Start();
        semaphoreSRunway.Start();
        buffThreadSRunway.Start();


        thread1.Start();
        thread2.Start();
        thread3.Start();
        thread4.Start();
        thread5.Start();
        thread6.Start();
        thread7.Start();
        thread8.Start();
    }
Beispiel #2
0
    public Form1()
    {
        InitializeComponent();


        semaphore  = new Semaphore();
        semaphore2 = new Semaphore();
        buffer     = new Buffer();
        buffer2    = new Buffer();

        p1 = new ButtonPanelThread(new Point(5, 40),
                                   120, true, pnl1,
                                   Color.Blue,
                                   semaphore,
                                   buffer,
                                   btn1);

        p2 = new WaitPanelThread(new Point(40, 10),
                                 100, true, pnl2,
                                 Color.White,
                                 semaphore,
                                 buffer);

        p3 = new ButtonPanelThread(new Point(40, 10),
                                   250, true, pnl3,
                                   Color.Red,
                                   semaphore,
                                   buffer,
                                   btn3);

        p4 = new WaitPanelThread(new Point(40, 10),
                                 100, true, pnl4,
                                 Color.White,
                                 semaphore2,
                                 buffer);

        p5 = new ButtonPanelThread(new Point(40, 10),
                                   120, true, pnl5,
                                   Color.Green,
                                   semaphore2,
                                   buffer,
                                   btn5);


        semThread1  = new Thread(new ThreadStart(semaphore.Start));
        semThread2  = new Thread(new ThreadStart(semaphore2.Start));
        buffThread  = new Thread(new ThreadStart(buffer.Start));
        buffThread2 = new Thread(new ThreadStart(buffer2.Start));
        thread1     = new Thread(new ThreadStart(p1.Start));
        thread2     = new Thread(new ThreadStart(p2.Start));
        thread3     = new Thread(new ThreadStart(p3.Start));
        thread4     = new Thread(new ThreadStart(p4.Start));
        thread5     = new Thread(new ThreadStart(p5.Start));


        this.Closing += new CancelEventHandler(this.Form1_Closing);

        semThread1.Start();
        semThread2.Start();

        buffThread.Start();
        thread1.Start();
        thread2.Start();
        thread3.Start();
        thread4.Start();
        thread5.Start();
    }