Exemplo n.º 1
0
        public void Test_OddEvenWithSemaphore()
        {
            OddEvenWorker worker = new OddEvenWorker();

            Thread oddThread  = new Thread(() => { worker.PrintOddValuesSemaphore(20); });
            Thread evenThread = new Thread(() => { worker.PrintEvenValuesSemaphore(20); });

            oddThread.Name  = "OddTh";
            evenThread.Name = "EvenTh";


            Semaphore semaphore = new Semaphore(1, 4, "MySemaphore");

            semaphore.WaitOne();

            oddThread.Start();
            evenThread.Start();

            // don't let them go until semaphore released
            semaphore.Release();

            oddThread.Join();
            evenThread.Join();

            Assert.IsTrue(true);
        }
Exemplo n.º 2
0
        public void Test_OddEvenWithSemaphore()
        {
            OddEvenWorker worker = new OddEvenWorker();

            Thread oddThread = new Thread(() => { worker.PrintOddValuesSemaphore(20); });
            Thread evenThread = new Thread(() => { worker.PrintEvenValuesSemaphore(20); });
            oddThread.Name = "OddTh";
            evenThread.Name = "EvenTh";

            Semaphore semaphore = new Semaphore(1, 4, "MySemaphore");
            semaphore.WaitOne();

            oddThread.Start();
            evenThread.Start();

            // don't let them go until semaphore released
            semaphore.Release();

            oddThread.Join();
            evenThread.Join();

            Assert.IsTrue(true);
        }