class Program { public static volatile bool _shouldStop=true; //可以再多线程里访问 static void Main(string[] args) { ConsoleKey key; Thread TestThread = new Thread(new Program().Run); TestThread.Start(); Console.WriteLine(" 输入Q键 暂停子线程"); Console.WriteLine(" 输入A键 运行子线程"); do { key = Console.ReadKey().Key; if (key == ConsoleKey.Q) Program._shouldStop =false; else if(key == ConsoleKey.A) Program._shouldStop = true; } while (true); } public void Run() { while (true) { if (_shouldStop) { Thread.Sleep(500); Console.WriteLine("work thread: working ...."); } else Thread.Sleep(10);//通过线程的sleep来释放资源,否则会耗损系统资源,使CPU使用率过高 } //Thread.CurrentThread.Abort(); } }