c# - 可以在Thread.Sleep期间引发ThreadAbortException吗?

标签 c# multithreading sleep 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();
}

程序在 sleep 时间耗尽之前结束。

关于c# - 可以在Thread.Sleep期间引发ThreadAbortException吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2370541/

相关文章:

当我不主动使用计算机时,R 脚本停止运行

c# - 我如何在 Revit 2017 中获得房间分隔符

c# - 是否有理由两次抛出异常?

c++ - 条件变量卡在等待中

c - 退出线程时检测到堆栈崩溃

multithreading - 在 Mac OS X 上使用 clang 创建 std::thread 时出错: "attempt to use a deleted function"

c# - 如何使用通用存储库、工作单元模式和多个数据库的多个 EDMX

c# - 防止代码以随机顺序显示相同的图像?

linux - select函数有时会改变第二个参数readfds的值吗

java - Java内部有Thread.sleep时定时器不会停止