C# 线程之间切换

     static bool done = false;
        static readonly object obj = new object();
        static void Main(string[] args)
        {
            //线程发送信号
            var signal = new ManualResetEvent(false);
            new Thread(() => {
                var a = 0;
                //停止当前线程
                signal.WaitOne();
                signal.Dispose();
                go(a); }).Start();
            //新建一个线程执行
            new Thread(()=> { Console.WriteLine("aaa"); }).Start();
            Thread.Sleep(2000);
            //恢复之前停止的线程,发送信号
            signal.Set();
            Console.ReadLine(); 
        }
        static void go(int number)
        {
            lock (obj)
            {
                if (!done)
                {
                    Console.WriteLine(number);
                    done = true;
                };
            }
        }

原文地址:https://www.cnblogs.com/li-lun/p/9112022.html