我有一个简单的问题,但我认为有多个答案,但是有关于以下内容的好/坏做法;
我正在为给定的接口方法实现:
Task<Model> GetDataAsync(CancellationToken token);
所以在我的实现中,我得到以下签名;
public async Task<Model> GetDataAsync(CancellationToken token)
但是,这种实现缺少任何异步调用;只是一个常规:return x.firstOrDefault...
所以我得到了下一个问题;这是一些需要的建议;我应该做一个await Task.Run(...);
所以我仍然可以实现给定的接口(我需要顺便说一句),还是有更好的方法?有什么好处。
您可以从给定结果返回已完成的任务,而无需调用await / Task.Run(考虑到您真的不想从另一个线程运行它)
public Task<Model> GetDataAsync(CancellationToken token)
{
return Task.FromResult(x.FirstOrDefault(...));
}
并且不要忘记从方法签名中删除async