Thread.Sleep()和await Task.Delay之间的真正区别是什么?

时间:2020-03-04 03:45:38

标签: c# multithreading task delay sleep

这两种方法都会使当前函数休眠,然后继续执行,但是它们之间的真正区别是什么?等待将要求该方法异步,为什么不只使用Thread.Sleep?

什么时候不应该使用Thread.Sleep而是Task.Delay?

1 个答案:

答案 0 :(得分:-1)

Thread.Sleep将导致操作系统线程被挂起,直到计时器过去。

await Task.Delay将注册一个回调方法,该计时器将在计时器经过时由OS执行。然后,该方法将返回不完整的Task。允许调用方立即在此OS线程上执行其他操作。