重複の可能性:
async キーワードが存在する理由
私には2つの方法があります。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";
}
エラーメッセージは
「await」演算子は、非同期メソッド内でのみ使用できます。このメソッドを 'async' 修飾子でマークし、その戻り値の型を 'Task' に変更することを検討してください。
よくわかりません。await
キーワードを使用すると、呼び出し元のスレッドが中断され、タスクの完了を待ちます。したがって、一度await
使用すると、メソッドは非同期メソッドではなくなります。右?
備考:目的を達成するためにロジックMyMethod
とMyMethodAsync
呼び出しを入れる必要があることはわかっています。MyMethod