コード例 #1
0
        public static void B(object param)
        {
            ThreadStateMessage myMessage = (ThreadStateMessage)param;

            Console.WriteLine("Hello from B");
            while (!myMessage.YouShouldStopNow)
            {
                Thread.Sleep(10);
                Console.WriteLine("B is still running");
            }
            Console.WriteLine("Goodbye from B");
        }
コード例 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Main program starts");
            Thread             firstThread = new Thread(A);
            ThreadStateMessage messageToA  = new ThreadStateMessage()
            {
                YouShouldStopNow = false
            };

            firstThread.Start(messageToA);
            Thread.Sleep(50);     //Let other threads do their thing for 0.05 seconds
            Console.WriteLine("Sending stop signal from main program!");
            messageToA.YouShouldStopNow = true;
            firstThread.Join();
            Console.WriteLine("Main program ends - press any key to exit");
            Console.Read();    //
        }
コード例 #3
0
        public static void A(object param)
        {
            ThreadStateMessage myMessage = (ThreadStateMessage)param;

            Console.WriteLine("Hello from A");
            ThreadStateMessage messageToB   = new ThreadStateMessage();
            Thread             secondThread = new Thread(B);

            secondThread.Start(messageToB);

            while (!myMessage.YouShouldStopNow)
            {
                Thread.Sleep(10);
                Console.WriteLine("A is still running");
            }

            Console.WriteLine("Sending stop signal from A!");
            messageToB.YouShouldStopNow = true;
            secondThread.Join();

            Console.WriteLine("Goodbye from A");
        }