【发布时间】:2017-06-05 11:32:07
【问题描述】:
是否可以将使用 Task.FromResult 创建的相同 Task
我提出这个问题的理由是减少即时完成的异步接口实现产生的垃圾(Task
基于this article about disposing of tasks,如果 .NET Core 的行为相同(是吗?),应该是可能的。
【问题讨论】:
标签: c# .net .net-core .net-standard
是否可以将使用 Task.FromResult 创建的相同 Task
我提出这个问题的理由是减少即时完成的异步接口实现产生的垃圾(Task
基于this article about disposing of tasks,如果 .NET Core 的行为相同(是吗?),应该是可能的。
【问题讨论】:
标签: c# .net .net-core .net-standard
是的,这实际上是强烈推荐的,如果您有一小部分可能同步知道的可能结果(来自缓存等)。同样,在Task(不是Task<T>)的情况下,可以使用Task.CompletedTask。
请注意,如果大部分您的调用同步完成,但您没有有一小部分可能的结果,您可能需要考虑ValueTask<T>,这是经过优化的对于这种情况。
这里的一切都同样适用于 .NET 和 .NET Core。
【讨论】: