c# - 使用 Task.FromResult 等待同步方法是否有意义

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

等待同步 repo.GetCategories 调用以获取端点可用性有什么好处?

我的第一 react 是这毫无意义。但我不确定。

[HttpGet]
public async Task<IHttpActionResult> Get(string country)
{
    var result = repo.GetCategories(new List<string> { country});
    return await Task.FromResult(Ok(result));
}

最佳答案

My first mind was that makes no sense.

你的想法是对的。如果正在进行的操作不是异步的,为什么要把它包装在 Task 中?根本吗?除非您要重写在您无法控制的基类中声明的方法,否则这会更好:

[HttpGet]
public IHttpActionResult Get(string country)
{
    var result = repo.GetCategories(new List<string> { country});
    return Ok(result);
}

如果您无法控制上述方法,那么等待它就没有意义。 Task.FromResult只会用 TaskCompletionSource<T> 包装您的同步结果。幕后并没有发生任何本质上异步的事情。

关于c# - 使用 Task.FromResult 等待同步方法是否有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31937192/

相关文章:

c# - 更改表中记录的排名

c# - 使用 Ninject 和 Web API 2.1 注入(inject) API Controller 时出现 InvalidOperationException

c# - 如何使用 Parallel 调用 Task<T> 列表

javascript - 结合使用 Async wait 和 hooks

Vue.js 非阻塞 while 语句(轮询后端直到进度完成)

c# - 将数据放入DataTable中,得到MemoryOutOfExceptionion

c# - 使用另一个接口(interface)从一个接口(interface)实现泛型方法

c# - 如何配置 ReSharper 8 的完整代码清理以将自动属性视为字段而不是方法?

ASP.NET Web API 2 View 模型?

c# - WebAPI 上传必须是异步的吗?