可能性の重複:
Why does the async keyword exist「非同期」メソッドの中に「待つ」必要があるのはなぜですか?
私は二つの方法があります。 1つは通常のメソッド(MyMethod
)で、もう1つは非同期メソッド(MyMethodAsync
)です。コンパイルエラーが発生します。 「待つ」演算子のみ非同期メソッド内で使用することができる
static string MyMethod() { var result = await MyMethodAsync(); // compile error here return result; } async static Task<string> MyMethodAsync() { /** perform my logic here... **/ Thread.Sleep(1000); return "yes"; }
エラーメッセージがあります。このメソッドを 'async'修飾子でマークし、戻り値の型を 'Task'に変更することを検討してください。
私は混乱しています。 await
キーワードを使用すると、呼び出しスレッドが中断され、タスクの完了を待ちます。したがって、await
が使用されると、このメソッドは非同期メソッドではなくなりました。右?
備考:ロジックをMyMethod
に、MyMethodAsync
には、MyMethod
としてください。どのように非同期および内部の作業を待つように洞察力の膨大な量のために