如果方法是同步的,则保留 Task 和 Task.FromResult 还是完全删除 Task-stuff?

Tib*_*tim 4 c# task-parallel-library async-await

我有一个 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);
}
Run Code Online (Sandbox Code Playgroud)

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

public string GetSomeData()
{
    // some synchronous processing...
    return result;
}
Run Code Online (Sandbox Code Playgroud)

Ran*_*ner 5

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

以后如果需要修改方法来做异步任务,可以把签名改成异步签名。