一尘不染

什么时候使用Task.Delay,什么时候使用Thread.Sleep?

c#

对于何时使用Task.DelayThread.Sleep是否有好的规则?

  • 具体来说,是否存在一个最小值才能使一个方法比另一个方法有效/有效?
  • 最后,由于Task.Delay导致在异步/等待状态机上进行上下文切换,因此使用它会产生开销吗?

阅读 701

收藏
2020-05-19

共1个答案

一尘不染

使用Thread.Sleep时要阻止当前线程。

使用Task.Delay时,你想不阻塞当前线程的逻辑延迟。

对于这些方法,效率不应该是最重要的问题。它们在现实世界中的主要用途是作为I / O操作的重试计时器,其数量级为秒而不是毫秒。

2020-05-19