簡單的連續呼叫

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

這裡需要注意的主要事項是,雖然每個 await-ed 方法都是非同步呼叫的 - 並且在該呼叫的時間內控制被返回到系統 - 方法內部的流程是線性的,並且不需要任何特殊處理,因為非同步。如果任何方法呼叫失敗,則異常將按預期處理,在這種情況下,意味著方法執行將被中止,異常將在堆疊中上升。