线程的状态
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace MultiThreadTest { class Program { static void Main(string[] args) { Console.WriteLine("Begin Thread 1"); Thread thread1 = new Thread(Task); Console.WriteLine("Start Thread 1"); thread1.Start(); PrintThreadState(thread1); Thread.Sleep(3 * 1000); Console.WriteLine("suspend thread1"); thread1.Suspend(); Thread.Sleep(1000); PrintThreadState(thread1); Console.WriteLine("Resume thread1"); thread1.Resume(); PrintThreadState(thread1); Console.WriteLine("Stop thread1"); thread1.Abort(); Thread.Sleep(1000); PrintThreadState(thread1); Console.WriteLine("Begin Thread 2"); Thread thread2 = new Thread(Task2); thread2.Start(); Thread.Sleep(2 * 1000); PrintThreadState(thread2); Thread.Sleep(10 * 1000); PrintThreadState(thread2); Console.Read(); } private static void Task() { Console.WriteLine("Thread is running..."); while (true) ; } private static void Task2() { Console.WriteLine("Thread start to sleep"); Thread.Sleep(10 * 1000); Console.WriteLine("Thread was resumed"); } private static void PrintThreadState(Thread thread) { Console.WriteLine("Thread's status is:{0}", thread.ThreadState.ToString()); } } }
输出