【问题标题】:What's the true difference between Thread.Sleep() and await Task.Delay? [duplicate]Thread.Sleep() 和 await Task.Delay 之间的真正区别是什么? [复制]
【发布时间】:2020-03-04 03:45:38
【问题描述】:

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

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

【问题讨论】:

    标签: c# multithreading task delay sleep


    【解决方案1】:

    Thread.Sleep 将导致操作系统线程暂停,直到计时器结束。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多