我有两种方法。一种是常规方法(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
的逻辑来实现我想要的。