¿Qué es ConfigureAwait?
¿Qué es ConfigureAwait?

Video: ¿Qué es ConfigureAwait?

Video: ¿Qué es ConfigureAwait?
Video: Configuring Await 2024, Noviembre
Anonim

ConfigureAwait (falso) implica una tarea que ya se completó en el momento en que se espera (que en realidad es increíblemente común), entonces el ConfigureAwait (falso) no tendrá sentido, ya que el hilo continúa ejecutando código en el método después de esto y aún en el mismo contexto que estaba allí anteriormente.

Posteriormente, también se puede preguntar, ¿cuál es el uso de ConfigureAwait falso?

ConfigureAwait ( falso ) configura la tarea para que la continuación después de la espera no tenga que ejecutarse en el contexto de la persona que llama, evitando así posibles interbloqueos.

Además de arriba, ¿qué es SynchronizationContext? SynchronizationContext es una representación del entorno actual en el que se ejecuta nuestro código. Es decir, en un programa asincrónico, cuando delegamos una unidad de trabajo a otro hilo, capturamos el entorno actual y lo almacenamos en una instancia de SynchronizationContext y colóquelo en el objeto Tarea.

Teniendo esto en cuenta, ¿cuál es el uso de ConfigureAwait?

Utilizando ConfigureAwait (falso) para evitar interbloqueos es una práctica peligrosa. Usted tendría que utilizar ConfigureAwait (falso) por cada espera en el cierre transitivo de todos los métodos llamados por el código de bloqueo, incluidos todos los códigos de terceros y de segundos. Utilizando ConfigureAwait (falso) para evitar un punto muerto es, en el mejor de los casos, solo un truco).

¿Qué es GetAwaiter?

GetAwaiter () método, que devuelve una instancia que tiene un método GetResult (). Cuando se usa en una tarea con fallas, GetResult () propagará la excepción original (así es como “await task;” obtiene su comportamiento). GetResult () porque conserva las excepciones de tareas en lugar de envolverlas en una AggregateException.

Recomendado: