web-dev-qa-db-ja.com

.NET 4.6のTask.CompletedTaskのポイントは何ですか?

このブログ投稿 .NET 4.6で導入された新しい Task.CompletedTask プロパティを含む新しいTask APIについて言及しています。

なぜこれが追加されたのですか?これは、たとえば、Task.FromResult(whatever)よりも優れていますか?

26
Gigi

Task.FromResult(whatever)Task<TResult>が、4.6までは一般的でないタスクには何もありませんでした。 FromResultをダミー値で使用して暗黙的にTaskにキャストすることもできますが、それは意図を多少難読化します(実際には非同期valueを返しません)オブジェクトを下に割り当てます(CompletedTaskはすべての呼び出し元でキャッシュおよび共有できます)。

現在の(4.5.2以前の)コードベースでカスタムの静的完了タスクを見るのは珍しいことではないので、フレームワーク自体に組み込むことは理にかなっています。

39
Honza Brestan