title: When to use Task.Delay, when to use Thread.Sleep?
body: <p>Are there good rule(s) for when to use <a href="https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.delay#overloads" rel="noreferrer">Task.Delay</a> versus <a href="https://docs.microsoft.com/en-us/dotnet/api/system.threading.thread.sleep#overloads" rel="noreferrer">Thread.Sleep</a>?</p>
  <ul>
  <li>Specifically, is there a minimum value to provide for one to be effective/efficient over the other?</li>
  <li>Lastly, since Task.Delay causes context-switching on a async/await state machine, is there an overhead of using it?</li>
  </ul>