Fork me on GitHub

Task.Delay 和 Thread.Sleep的区别

1.Thread.Sleep()是同步延迟,Task.Delay()是异步延迟。
2.Thread.Sleep()会阻塞线程,Task.Delay()不会。
3.Thread.Sleep()不能取消,Task.Delay()可以。搭配CancellationTokenSource
4.Task.Delay()实质创建一个运行给定时间的任务,Thread.Sleep()使当前线程休眠给定时间。
5.反编译Task.Delay(),基本上讲它就是个包裹在任务中的定时器。

 

 

总结:同步使用Thread.Sleep

   异步使用Task.Delay,但是记得加等待 await

posted @ 2025-05-15 11:24  WantRemake  阅读(118)  评论(0)    收藏  举报