线程的退出比较特殊,使用的是Abort()方法进行强制退出,会抛出一个线程异常来结束该线程的执行任务。
class Program
{
private static Thread subthread ;
private static string name ="";
static void Main(string[] args)
{
subthread = new Thread(new ThreadStart(GetShow));
subthread.IsBackground = false;
subthread.Name = "子线程";
subthread.Start(); //开启线程
Console.WriteLine("{0}后台线程", Thread.CurrentThread.Name+Thread.CurrentThread.IsBackground+",结束");
Console.WriteLine("主线程结束");
}
static void GetShow()
{
Console.WriteLine("输入姓名:");
name = Console.ReadLine();
try
{
subthread.Abort();//结束线程
}
catch (Exception ex)
{
Console.WriteLine("异常:>> "+ex.Message);
}
Console.WriteLine("执行");
}
}
在上面输入姓名后,结束subThread线程,使用Abort()方法,最后抛出了一个线程异常,终止该线程。