Middle
¿Cómo funcionan la palabra clave async y el operador await en C#?
sobes.tech AI
Respuesta de la IA
async marca el método como asincrónico, permitiendo usar await en él. Esto no hace que el método en sí sea asincrónico, pero permite que el compilador genere una máquina de estados que gestionará la ejecución.
await se usa antes de una expresión que devuelve Task o Task<T>. Suspende la ejecución del método async actual hasta que la tarea esperada finalice, sin bloquear el hilo de ejecución. Tras completar la tarea, la ejecución del método continúa desde después de await. Si la tarea devuelve un resultado (Task<T>), await devuelve ese resultado.
public async Task<int> GetDataAsync()
{
// Operación asincrónica
HttpClient client = new HttpClient();
string result = await client.GetStringAsync("http://example.com");
// La ejecución continúa después de que GetStringAsync finalice
// Procesamiento del resultado
return result.Length;
}