如何获得等待Thread.Sleep?

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

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

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

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

await Thread.SleepAsync(10000) 

UPDATE

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

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

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

 // Execution of the async method will continue one second later, but without // blocking. await Task.Delay(1000);