Thread.Abort 可以中断正在休眠的线程(例如,使用 Thread.Sleep(TimeSpan.FromDays(40)) 吗?还是会等到休眠时间跨度到期?
(备注:FromDays(40) 当然是个玩笑。而且我知道 Thread.Abort 不是停止线程的推荐方法,我正在使用我现在不想重构的遗留代码。)
Thread.Abort 可以中断正在休眠的线程(例如,使用 Thread.Sleep(TimeSpan.FromDays(40)) 吗?还是会等到休眠时间跨度到期?
(备注:FromDays(40) 当然是个玩笑。而且我知道 Thread.Abort 不是停止线程的推荐方法,我正在使用我现在不想重构的遗留代码。)
代码值一千字:
public static void Main(string[] args)
{
var sleepy = new Thread(() => Thread.Sleep(20000));
sleepy.Start();
Thread.Sleep(100);
sleepy.Abort();
sleepy.Join();
}
程序在睡眠时间用完之前结束。
您只能从另一个线程中止线程。也就是说,您应该将 Thread 引用存储在某处,然后.Abort
从正在休眠的线程以外的线程调用。