Cómo aguarda el trabajo asíncrono en C # [cerrado]

Estoy tratando de entender cómo esperar el trabajo asíncrono en C # y una cosa me confunde mucho. Entiendo que cualquier método que use la palabra clave await debe estar marcado con async. Según tengo entendido, cuando se golpea una línea con la palabra clave await, el código debajo de esa línea no se ejecuta. Se inicia una operación asíncrona para llevar a cabo la instrucción en la línea de espera y el control se devuelve al método de llamada que puede continuar con la ejecución.

Pregunta # 1: ¿Es correcta esta suposición o el código debajo de la palabra clave await todavía se ejecuta?

En segundo lugar, supongamos que llamé a un método de servicio asíncrono y necesito devolver su resultado. La declaración de retorno está debajo de la palabra clave await.

Pregunta n. ° 2: ¿Cuándo es el resultado de la declaración de retorno, después de que la llamada asíncrona se haya completado o antes?

Pregunta # 3: Quiero usar el resultado de esa llamada de servicio y la operación asíncrona no ayudará porque quiero que el método de llamada se vea afectado cuando se devuelva el resultado. Entiendo que esto se puede hacer usando la propiedad Resultado que hace que la llamada esté sincronizada. Pero entonces, ¿cuál es el uso de async en las operaciones de base de datos porque son las que realmente toman el 80% del tiempo en la mayoría de las aplicaciones?

Pregunta # 4: ¿Cómo puedo usar async con operaciones de base de datos? ¿Es posible y recomendable?

Pregunta # 5: ¿En qué escenario serán útiles las operaciones asíncronas, parece que cada API está haciendo operaciones asíncronas ahora sin una razón? ¿O perdí el punto de usar operaciones asíncronas?

Lo que quiero decir al decir que api está haciendo métodos asínicos sin una razón es porque los métodos tienen que devolver algo y hasta que se realiza el cálculo, ¿cómo se pueden devolver? el resultado es devuelto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta