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; }; } }