如何获得等待Thread.Sleep?

我正在写一个基于await / sleep范例的networking绑定应用程序。

有时会发生连接错误,根据我的经验,等待一段时间,然后再次重试操作是值得的。

问题是,如果在await / async中使用Thread.Sleep或类似的阻塞操作,它会阻塞调用者线程中的所有活动。

我应该用什么来取代Thread.Sleep(10000)来达到同样的效果

await Thread.SleepAsync(10000) 

UPDATE

我更喜欢这样做的答案,而不创build任何额外的线程

One Solution collect form web for “如何获得等待Thread.Sleep?”

其他答案build议开始一个新的线程是一个坏主意 – 根本没有必要这样做。 async / await减less应用程序需要的线程数量。

你应该使用Task.Delay不需要一个新的线程,而是专门为此目的而devise的:

 // Execution of the async method will continue one second later, but without // blocking. await Task.Delay(1000); 
  • 如果我在同一个类上同步两个方法,它们可以同时运行吗?
  • 多处理与线程化Python
  • 在Bashmultithreading
  • 如何分配线程本地存储?
  • 超时使用模块“subprocess”
  • 用于.class的Java同步块
  • Java:Swing库和线程安全
  • 我怎样才能剖析Python中的multithreading程序?
  • 何时使用recursion互斥?
  • 我如何selectSemaphore和SemaphoreSlim?
  • 强制多个线程在可用时使用多个CPU