チャンネル 9 の msdn ビデオを閲覧していたところ、次の未回答のコメントを見つけたので、誰かが説明してくれることを期待しています。
async キーワードの意味がわかりません。反復子が IEnumerable を返すメソッドで return を生成できるのと同じように、メソッドが Task を返すときはいつでも await キーワードを許可しないのはなぜでしょうか。
きっと何か良い理由があるのでしょうが、上記の提案がなぜできなかったのか理解したいだけです。
ベストアンサー1
これは主に下位互換性の問題を回避するために導入されました。async
メソッドの - 性をコンパイラーが推測する必要がある場合 (await
キーワードの検出を通じて)、特に識別子 ( と呼ばれる変数名または関数名) がある場合に、既存のコードが突然異なる方法で処理されるという微妙なシナリオがありますawait
。
詳しい説明はここにあります:https://learn.microsoft.com/en-us/archive/blogs/ericlippert/asynchrony-in-c-5-part-six-whither-async