2017-06-05 47 views
5

是否可以重複使用Task.FromResult創建的同一個任務<T>以便即時返回方法(因爲它已經完成了)?在.NET核心/ .NET標準中重用任務<T>標準

我的問題背後的推理是減少由即時完成異步接口的實現產生的垃圾(任務<布爾>將是一個很好的例子,因爲它只有兩個可能的值)。

基於this article about disposing of tasks,應該有可能,如果.NET核心行爲相同(是嗎?)。

回答

6

是的,而這實際上是強烈如果您有一小部分可能同步知道的可能結果(來自緩存等),建議使用這個結果。同樣,在Task(不是Task<T>)的情況下,可以使用Task.CompletedTask

注意,如果您的通話完整的同步,但你沒有有可能的結果的小區域,你可能要考慮ValueTask<T>,這是針對這種情況進行了優化。

這裏的一切同樣適用於.NET和.NET Core。

相關問題