2017-06-05 3 views
5

インスタントメソッドを返すためにTask.FromResultで作成した同じタスク<T>を再利用することはできますか?.NET Frameworkの<T>を再利用する.NETの

質問の背後にある私の推論は、瞬時に完了する非同期インターフェイスの実装によって生成されるゴミを減らすことです(タスク<bool>は2つの可能な値しか持たないため、これの素晴らしい例です)。

ベースthis article about disposing of tasksの場合、.NETコアが同じように動作する場合は可能ですか?

答えて

6

はい、これは実際にはです(キャッシュなどから)同期がとれている可能性のある結果が少ない場合には、強くをお勧めします。同様に、TaskTask<T>ではない)の場合には、Task.CompletedTaskを使用することができる。

注同期あなたの通話の最も完全な場合しかし、あなたはおそらく結果の小さなドメインを持っていません、あなたはこのような場合のために最適化されValueTask<T>を、検討する必要がありますということ。

ここでのすべては、.NETコアと.NETコアの両方に等しく適用されます。

関連する問題