首页 文章详情

C#Async,Await和ConfigureAwait的关系

跟着阿笨一起玩NET | 21 2023-03-03 19:15 0 0 0
UniSMS (合一短信)

以下是ConfigureAwait(false)的示例:

public async Task<int> ExecuteAsync(UpdateCarCommand request, CancellationToken token = default)  {      using (var context = _contextFactory.Create())      {          var entity = context.Cars.FirstOrDefault(a => a.Id == request.Id);          // Mapping logic          return await context.SaveChangesAsync(token).CongifureAwait(false);      }  }


[HttpPut]public IActionResult Put([FromBody]UpdateCommand command) => _responseMediator.ExecuteAsync(command).ConfigureAwait(false).GetAwaiter().GetResult();



 

以下代码为例:


private HttpClient _client = new HttpClient(); async Task<List<string>> GetBothAsync(string url1, string url2){ var result = new List<string>(); var task1 = GetOneAsync(result, url1); var task2 = GetOneAsync(result, url2); await Task.WhenAll(task1, task2); return result;} async Task GetOneAsync(List<string> result, string url){ var data = await _client.GetStringAsync(url); result.Add(data);}



good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter