从控制器方法返回任务VS返回等待的任务之间的区别

时间:2018-08-16 14:11:44

标签: c# asynchronous asp.net-web-api async-await

我有一个ASP.NET WEB API控制器,其方法如下:

[HttpGet]
[Route("some/route/to/endpoint")]
public Task<Data> DoStuffAsync()
{
    var somevar = Guid.NewGuid();
    return DoSomeInternalStuffAsync();
}

private async Task<Data> DoSomeInternalStuffAsync()
{
    var result = await SomeReallyInternalThingsAsync();
    return result.Data;
}

取消异步/等待并像实际使用它一样有什么区别

[HttpGet]
[Route("some/route/to/endpoint")]
public async Task<Data> DoStuffAsync()
{
    var somevar = Guid.NewGuid();
    return await DoSomeInternalStuffAsync();
}

我阅读了很多文章和Stackoverflow帖子,但是我仍然不清楚:

  1. 返回Task VS返回等待的任务的控制器方法的内部处理方式是什么?
  2. 在每种情况下都将等待控制器方法,还是在控制器方法上返回Task是纯同步操作?

到目前为止已阅读的文章:Eliding async awaitAsynchronous ProgrammingStackoverflow Thread 1Stackoverflow Thread 2

更新:评论中回答了我的问题。

0 个答案:

没有答案