C# Language Semplici chiamate consecutive


Esempio

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);
}

La cosa principale da notare qui è che mentre ogni await metodo -ed è chiamato in modo asincrono - e per il tempo di quella chiamata il controllo viene ceduto al sistema - il flusso all'interno del metodo è lineare e non richiede alcun trattamento speciale a causa di asincronia. Se uno dei metodi chiamati fallisce, l'eccezione verrà elaborata "come previsto", che in questo caso significa che l'esecuzione del metodo verrà interrotta e l'eccezione salirà nello stack.