Exemplo n.º 1
0
        static void main(string[] args)
        {
            int y;

            a = 10; b = 7;
            c = 15; d = 3;
            TimerCallback tc      = new TimeCallback(CheckTime);
            Thread        thread1 = new Thread(new ThreadStart(Program.Threadfunc1));
            Thread        thread2 = new Thread(new ThreadStart(Program.Threadfunc2));
            Thread        thread3 = new Thread(new ThreadStart(Program.Threadfunc3));
            Thread        thread4 = new Thread(new ThreadStart(Program.Threadfunc4));
            Timer         t       = new timer(tc, null, 0, 1000);

            Console.WriteLine("thread1.ThreadState=" + thread1.ThreadState);
            Console.WriteLine("thread2.ThreadState=" + thread2.ThreadState);
            Console.WriteLine("thread3.ThreadState=" + thread3.ThreadState);
            Console.WriteLine("thread4.ThreadState=" + thread4.ThreadState);
            thread1.start();
            thread2.start();

            Console.WriteLine("thread1.ThreadState=" + thread1.ThreadState);
            Console.WriteLine("thread2.ThreadState=" + thread2.ThreadState);
            Console.WriteLine("thread3.ThreadState=" + thread3.ThreadState);
            Console.WriteLine("thread4.ThreadState=" + thread4.ThreadState);
            thread1.join();
            thread2.join();

            Console.WriteLine("new threads ending");
            Console.WriteLine("y1=" + y1);
            Console.WriteLine("y2=" + y2);

            thread3.start();
            thread4.Start();
            Console.WriteLine("thread1.ThreadState=" + thread1.ThreadState);
            Console.WriteLine("thread2.ThreadState=" + thread2.ThreadState);
            Console.WriteLine("thread3.ThreadState=" + thread3.ThreadState);
            Console.WriteLine("thread4.ThreadState=" + thread4.ThreadState);

            thread3.join();
            thread4.join();

            Console.WriteLine("new threads ending");
            Console.WriteLine("y3=" + y3);
            Console.WriteLine("y4=" + y4);

            Thread.sleep(2000);
            y = y3 + y4;
            Console.WriteLine("y=" + y);
            t.dispose();
            Console.ReadLine();
        }