without whenall understanding method httpresponsemessage español ejemplo create await async c# asynchronous async-await

c# - whenall - Cuando “espero” un método “asíncrono”, ¿se vuelve síncrono?



task whenall c# (1)

Se están ejecutando de forma asíncrona, pero secuencialmente . someOtherAsyncMethod no se invocará hasta que finalice someAsyncMethod .

Si quieres ejecutarlos en paralelo , tienes varias opciones.

var taskA = MethodA(); var taskB = MethodB(); var a = await taskA; var b = await taskB; // or var results = await Task.WhenAll(MethodA(), MethodB());

Siguiente pregunta:

He visto aplicaciones nativas en el pasado que esperan / async como un medio para liberar el subproceso de la interfaz de usuario, pero ¿existen otras razones por las que este diseño sea deseable?

En una aplicación ASP.NET, querrá usar esto para permitir que el subproceso actual vuelva al conjunto de subprocesos y sirva otras solicitudes entrantes, mientras se ejecutan el MethodA / MethodB - SI estos métodos están realizando una E / S asíncrona verdadera. Esa es básicamente la única razón por la que harías esto en una aplicación ASP.NET.

Quizás también quieras leer Stephen Cleary:

Así que aquí está el escenario:

static async void Main(string[] args) { await AnAsyncMethod(); } private static async task<bool> AnAsyncMethod() { var x = await someAsyncMethod(); var y = await someOtherAsyncMethod(); return x == y; }

¿Se están ejecutando "someAsyncMethod" y "someOtherAsyncMethod" de forma síncrona porque estamos utilizando a la espera, o ambos se ejecutan de forma asíncrona en el orden en que se ejecutan?

ACTUALIZAR

Dada la respuesta a continuación que indica que los métodos asíncronos esperados se ejecutarán de forma secuencial, ¿cuál sería el propósito de hacer que esas llamadas a métodos sean asíncronas en primer lugar si solo vamos a detener la ejecución y esperar los valores de retorno de esos métodos? He visto aplicaciones nativas en el pasado que esperan / async como un medio para liberar el subproceso de la interfaz de usuario, pero ¿existen otras razones por las que este diseño sea deseable?