如果要挂起一个线程,需要用到线程实例名,Suspend()方法,如果想要唤醒线程,需要用到线程实例名Resume()方法,如果试图对一个已经挂起的线程再进行挂起操作,就不会起作用,如果两个方法操作不当,都有可能引发ThreadStateException异常
要求:主线程调用子线程,再主线程内部分表掉哟哪个Suspend()方法和Resume()方法
static void Method()
{
Console.WriteLine("---{0}线程启动---", Thread.CurrentThread.Name);
int i = 1;
while (i <= 80)
{
Console.Write(i + "\t");
if (i % 8 == 0)
{
Console.WriteLine();
Thread.Sleep(250);
}
i++;
}
Console.WriteLine("\n---{0}线程结束---", Thread.CurrentThread.Name);
}
static void Main(string[] args)
{
Thread.CurrentThread.Name = "主线程";
Console.WriteLine("---{0}线程启动---", Thread.CurrentThread.Name);
Thread MyThread = new Thread(new ThreadStart(Method));
MyThread.Name = "子线程";
MyThread.Start();
Thread.Sleep(1000); //让子线程运行1秒
MyThread.Suspend();
Console.WriteLine("\n--挂起{0}线程---",MyThread.Name);
Thread.Sleep(1000);
MyThread.Resume();//继续挂起的线程
Console.WriteLine("\n--唤醒{0}线程---", MyThread.Name);
Thread.Sleep(1000);
Console.WriteLine("{0}线程终止",Thread.CurrentThread.Name);
Console.Read();
}