【发布时间】:2020-03-04 03:45:38
【问题描述】:
这两种方法都使当前函数休眠,然后继续执行,但它们之间的真正区别是什么? await 将要求方法是异步的,为什么不直接使用 Thread.Sleep 呢?
什么时候不应该使用 Thread.Sleep 而使用 Task.Delay?
【问题讨论】:
标签: c# multithreading task delay sleep
这两种方法都使当前函数休眠,然后继续执行,但它们之间的真正区别是什么? await 将要求方法是异步的,为什么不直接使用 Thread.Sleep 呢?
什么时候不应该使用 Thread.Sleep 而使用 Task.Delay?
【问题讨论】:
标签: c# multithreading task delay sleep
Thread.Sleep 将导致操作系统线程暂停,直到计时器结束。
await Task.Delay 将注册一个回调方法,当计时器结束时操作系统将执行该方法。然后该方法将返回一个不完整的Task。允许调用者立即在此 OS 线程上执行其他操作。
【讨论】: