5
是否可以重複使用Task.FromResult創建的同一個任務<T>以便即時返回方法(因爲它已經完成了)?在.NET核心/ .NET標準中重用任務<T>標準
我的問題背後的推理是減少由即時完成異步接口的實現產生的垃圾(任務<布爾>將是一個很好的例子,因爲它只有兩個可能的值)。
基於this article about disposing of tasks,應該有可能,如果.NET核心行爲相同(是嗎?)。
是否可以重複使用Task.FromResult創建的同一個任務<T>以便即時返回方法(因爲它已經完成了)?在.NET核心/ .NET標準中重用任務<T>標準
我的問題背後的推理是減少由即時完成異步接口的實現產生的垃圾(任務<布爾>將是一個很好的例子,因爲它只有兩個可能的值)。
基於this article about disposing of tasks,應該有可能,如果.NET核心行爲相同(是嗎?)。
是的,而這實際上是強烈如果您有一小部分可能同步知道的可能結果(來自緩存等),建議使用這個結果。同樣,在Task
(不是Task<T>
)的情況下,可以使用Task.CompletedTask
。
注意,如果最您的通話完整的同步,但你沒有有可能的結果的小區域,你可能要考慮ValueTask<T>
,這是針對這種情況進行了優化。
這裏的一切同樣適用於.NET和.NET Core。