首页 > 编程笔记 > C#笔记 阅读:17

C# Thread.Abort():终止线程(附带实例)

C# 程序中,终止线程使用 Thread 类的 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
}

相关文章