C# Thread.Abort():终止线程(附带实例)
C# 程序中,终止线程使用 Thread 类的 Abort() 方法实现,该方法有两种重载形式,下面分别介绍。
1) 终止线程,在调用此方法的线程中引发 ThreadAbortException 异常,以开始终止此线程的过程,语法如下:
2) 终止线程,在调用此方法的线程中引发 ThreadAbortException 异常,以开始终止此线程并提供有关线程终止的异常信息的过程,语法如下:
注意,线程的 Abort() 方法用于永久地停止托管线程。调用 Abort() 方法时,公共语言运行库在目标线程中引发 ThreadAbortException 异常,目标线程可捕捉此异常。一旦线程被中止,它将无法重新启动。
例如,判断线程 1 和线程 2 是否还在运行,如果运行,则调用 Abort() 方法将它们关闭,主要代码如下:
1) 终止线程,在调用此方法的线程中引发 ThreadAbortException 异常,以开始终止此线程的过程,语法如下:
public void Abort()
2) 终止线程,在调用此方法的线程中引发 ThreadAbortException 异常,以开始终止此线程并提供有关线程终止的异常信息的过程,语法如下:
public void Abort (Object stateInfo)其中,参数 stateInfo 是一个 Object 对象,它包含应用程序特定的信息(如状态),该信息可供正被终止的线程使用。
注意,线程的 Abort() 方法用于永久地停止托管线程。调用 Abort() 方法时,公共语言运行库在目标线程中引发 ThreadAbortException 异常,目标线程可捕捉此异常。一旦线程被中止,它将无法重新启动。
例如,判断线程 1 和线程 2 是否还在运行,如果运行,则调用 Abort() 方法将它们关闭,主要代码如下:
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (th1.ThreadState == ThreadState.Running) //判断线程1是否正在运行 th1.Abort(); //终止线程1 if (th2.ThreadState == ThreadState.Running) //判断线程2是否正在运行 th2.Abort(); //终止线程2 }