C#简单连续调用

示例

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方法都被异步调用-并且在该调用时,控制权交还给了系统-该方法内部的流是线性的,并且由于异步而无需任何特殊处理。如果任何方法失败,则将按预期方式处理异常,在这种情况下,这意味着该方法的执行将被中止,并且异常将进入堆栈。