c# - run - Cómo quedar a la espera Thread.Sleep?
create async method c# (1)
Estoy escribiendo una aplicación de red basada en el paradigma await / sleep.
A veces, los errores de conexión ocurren, y en mi experiencia vale la pena esperar un tiempo y volver a intentar la operación.
El problema es que si uso Thread.Sleep o alguna operación de bloqueo similar en await / async, bloquea toda la actividad en el hilo de la persona que llama.
¿Qué debo reemplazar Thread.Sleep (10000) con para obtener el mismo efecto que
await Thread.SleepAsync(10000)
?
ACTUALIZAR
Preferiré una respuesta que lo haga sin crear ningún hilo adicional
Las otras respuestas que sugieren comenzar un nuevo hilo son una mala idea, no hay necesidad de hacer eso en absoluto. Parte del punto de async
/ await
es reducir la cantidad de hilos que necesita su aplicación.
En su lugar, debe usar Task.Delay
que no requiere un nuevo hilo, y fue diseñado precisamente para este propósito:
// Execution of the async method will continue one second later, but without
// blocking.
await Task.Delay(1000);