このブログ投稿 .NET 4.6で導入された新しい Task.CompletedTask プロパティを含む新しいTask APIについて言及しています。
なぜこれが追加されたのですか?これは、たとえば、Task.FromResult(whatever)
よりも優れていますか?
Task.FromResult(whatever)
はTask<TResult>
が、4.6までは一般的でないタスクには何もありませんでした。 FromResult
をダミー値で使用して暗黙的にTask
にキャストすることもできますが、それは意図を多少難読化します(実際には非同期valueを返しません)オブジェクトを下に割り当てます(CompletedTask
はすべての呼び出し元でキャッシュおよび共有できます)。
現在の(4.5.2以前の)コードベースでカスタムの静的完了タスクを見るのは珍しいことではないので、フレームワーク自体に組み込むことは理にかなっています。