c#杀死一个线程
时间: 2023-07-01 21:29:17 浏览: 129
在 C# 中,如果要终止一个线程,可以调用 Thread 类的 Abort 方法。该方法会引发 ThreadAbortException 异常,从而使线程退出。
以下是一个示例:
```csharp
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
// 创建新线程
Thread thread = new Thread(Worker);
// 启动线程
thread.Start();
// 等待一段时间
Thread.Sleep(1000);
// 终止线程
thread.Abort();
// 等待线程执行完毕
thread.Join();
Console.WriteLine("主线程执行完毕");
Console.ReadLine();
}
static void Worker()
{
try
{
Console.WriteLine("新线程开始执行");
// 模拟耗时操作
while (true)
{
Thread.Sleep(1000);
Console.WriteLine("新线程执行中...");
}
Console.WriteLine("新线程执行完毕");
}
catch (ThreadAbortException)
{
Console.WriteLine("新线程被终止");
Thread.ResetAbort();
}
}
}
```
在上面的示例中,我们首先创建了一个新的线程,并使用`Start`方法启动它。然后,等待一段时间后,调用了`Abort`方法来终止线程。
需要注意的是,在线程被终止时,会引发 ThreadAbortException 异常。因此,在 Worker 方法中,需要使用 try-catch 块来处理该异常,并重置线程的中止标志,以避免出现不必要的异常。
阅读全文