首页 > 解决方案 > 如果方法是同步的,则保留 Task 和 Task.FromResult 或完全删除 Task-stuff?

问题描述

我有一个 Web API 控制器(ASP.NET Core 5)。我的一些 API 是异步的,而其中一些不是。我的问题是下一个:public **Task<T>** WebApiMethod + Task.FromResult()如果我的方法是同步的,那么在 Web API 控制器中使用有什么好处吗?

例如:

public Task<string> GetSomeData()
{
    // some synchronous processing...
    return Task.FromResult(result);
}

我应该把上面的示例代码变成这样吗?

public string GetSomeData()
{
    // some synchronous processing...
    return result;
}

标签: c#async-awaittask-parallel-library

解决方案


如果 api 正在做同步工作,它应该有一个同步签名。它将使其他开发人员对该功能的可读性和理解更加清晰,并防止将来再次阅读此功能时产生误解。

将来,如果需要修改方法以执行异步任务,您可以将签名更改为具有异步签名。


推荐阅读