这是一个C#异步代码片段。GetAsync和GetAsync2一样吗?GetAsync是一个正确的实现吗?
public Task<IHttpActionResult> GetAsync()
{
return GetOneAsync();
}
public async Task<IHttpActionResult> GetAsync2()
{
return await GetOneAsync();
}
private async Task<IHttpActionResult> GetOneAsync()
{
using (var httpClient = new HttpClient())
{
await httpClient.GetAsync("http://baidu.com");
}
return Ok();
}
发布于 2015-11-09 06:40:51
这是不一样的。GetAsync
不会生成状态机,也不会等待GetOneAsync
的结果,当此方法不需要async
方法的结果时,这是首选选项。
生成的代码效率更高,并且不会生成状态机,也不需要上下文切换。
有关更多信息,请参阅Understanding the cost of Async/Await文章。
https://stackoverflow.com/questions/33603615
复制相似问题