.net 4.0 に async パッケージをインストールしました。これにより、アプリケーションで async / await キーワードを使用できるようになります。
今まで理解していたように、私の task.run コードを async / await でラップして、continuewith で task.run を使用するのと同じ結果を得ることができます。
これは本当ですか?またはより深い違いがありますか?
.net 4.0 に async パッケージをインストールしました。これにより、アプリケーションで async / await キーワードを使用できるようになります。
今まで理解していたように、私の task.run コードを async / await でラップして、continuewith で task.run を使用するのと同じ結果を得ることができます。
これは本当ですか?またはより深い違いがありますか?
それはあなたが何をしているかによって異なりますContinueWith
。しかし、はい、await
以前に を使用して達成したのと同じ効果を達成するためにを使用できることがよくありますContinueWith
。できないのは、「失敗した場合にのみこのコードを続行する」などのことです。そのためには、通常の例外処理を使用するだけです。AlexH が言うように、メソッドの全体的な動作に関してはさらに違いがありますが、ほとんどの場合、それが望ましいasync
と言えます。基本的に、コード フローの非同期であるため、非同期メソッドはより多くの非同期メソッドを呼び出す傾向があります。
async
/とは何かを読むことをお勧めしますawait
(そこにはたくさんのリソースがあります。MSDN の「タスクベースの非同期パターンの使用」ページを 1 つの出発点としてお勧めします。
関数プロトタイプに async キーワードを導入すると違いがあります。例外は Task 呼び出し元のレベルでスローされます。async キーワードがない場合、TaskContinuationOptions.OnlyOnFaulted ステータスをチェックして例外を取得する必要があります。