异步方法中同步代码的首选方式

preferred way of synchronous code in async method

我有一个简单的问题,但我认为有多个答案,但是是否有关于以下内容的good/bad练习;

我正在研究给定接口方法的实现:

Task<Model> GetDataAsync(CancellationToken token);

所以在我的实现中我得到了以下签名;

public async Task<Model> GetDataAsync(CancellationToken token)

但是,此实现缺少任何异步调用; 只是一个普通人:return x.firstOrDefault...

所以我遇到了下一个问题;这里需要一些建议; 我应该做 await Task.Run(...); 这样我仍然可以实现给定的接口(顺便说一句,我需要),还是有更好的方法?有什么好处。

您可以 return 从给定的结果中完成任务而无需调用 await / Task.Run(考虑到您真的不想从另一个线程 运行 它)

public Task<Model> GetDataAsync(CancellationToken token)
{
    return Task.FromResult(x.FirstOrDefault(...));
}

并且不要忘记从方法签名

中删除async