在C#中,当你使用Thread.Wait()
方法时,可能会遇到中断异常。为了处理这种异常,你可以使用try-catch
语句来捕获InterruptedException
。下面是一个示例:
using System;
using System.Threading;
class Program
{
static void Main()
{
Thread thread = new Thread(DoWork);
thread.Start();
// 等待一段时间,然后中断线程
Thread.Sleep(2000);
thread.Interrupt();
// 等待线程完成
thread.Join();
}
static void DoWork()
{
try
{
Console.WriteLine("Thread started.");
Thread.Sleep(5000); // 模拟耗时操作
Console.WriteLine("Thread finished.");
}
catch (InterruptedException ex)
{
Console.WriteLine("Thread was interrupted: " + ex.Message);
// 在此处处理中断异常,例如设置标志位以通知其他代码线程已被中断
}
}
}
在这个示例中,我们创建了一个新线程并启动它。然后,我们让主线程等待2秒钟,之后中断新线程。DoWork
方法中的try-catch
语句捕获InterruptedException
,我们可以在其中处理异常,例如设置一个标志位以通知其他代码线程已被中断。