Как получить ожидаемый поток.Спать?
Я пишу сетевое приложение, основанное на парадигме ожидания/сна.
иногда возникают ошибки подключения, и по моему опыту стоит подождать некоторое время, а затем повторить операцию снова.
проблема в том, что если я использую нить.Sleep или какая-то аналогичная операция блокировки в await/async, она блокирует всю активность в потоке вызывающего объекта.
что я должен заменить нить.Сон (10000) С для того чтобы достигнуть такого же влияния как
await Thread.SleepAsync(10000)
?
обновление
Я предпочитаю ответ, который делает это без создания каких-либо дополнительных потоков
1 ответ:
другие ответы, предлагающие начать новый поток, являются плохой идеей-нет необходимости делать это вообще. Часть точки зрения
async
/await
это уменьшить количество потоков, необходимых вашему приложению.вы должны вместо этого использовать
Task.Delay
, который не требуется новый поток, и был разработан именно для этой цели:// Execution of the async method will continue one second later, but without // blocking. await Task.Delay(1000);