【发布时间】:2014-12-08 17:29:41
【问题描述】:
当使用同步代码实现返回Task<T> 的接口方法时,您可以使用Task.FromResult<T>(result)。当结果只是 Task 时,有没有比使用 Task.FromResult<object>(null); 之类的更好的选择?
【问题讨论】:
-
你不能只使用
await或.Wait()吗? -
@ShaunWilde 我不想要异步方法的开销。 (看看这样做会生成的 IL。)
-
使用
Task.FromResult创建一个已完成的任务并将其向上转换到非通用的Task是很不幸的。就我个人而言,我会坚持这一点,并将已完成的Task的单个实例缓存在某个静态字段中并继续重用它。 -
Task.FromResult(0)有点短,但基本相同。 -
现在我们有
Task.CompletedTask。
标签: c#