我有兩種方法。一種是常規方法(MyMethod
),另一種是異步方法(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
時,調用線程將被掛起並等待任務完成。因此,一旦await
正在使用中,該方法不再是異步方法。對?
備註:我知道我應該把MyMethod
和MyMethodAsync
調用MyMethod
的邏輯來實現我想要的。