C# Language Simples llamadas consecutivas


Ejemplo

public async Task<JobResult> GetDataFromWebAsync()
{
  var nextJob = await _database.GetNextJobAsync();
  var response = await _httpClient.GetAsync(nextJob.Uri);
  var pageContents = await response.Content.ReadAsStringAsync();
  return await _database.SaveJobResultAsync(pageContents);
}

Lo principal a tener en cuenta es que, si bien todos los await método -ed se llama de forma asincrónica - y por el tiempo de la llamada del control es cedido de nuevo al sistema - el flujo en el interior del método es lineal y no requiere ningún tratamiento especial debido a las asincronía. Si alguno de los métodos llamados falla, la excepción se procesará "como se esperaba", lo que en este caso significa que la ejecución del método se anulará y la excepción subirá la pila.