我想知道以下代码是否会等待异步方法完成后再执行主线程,还是只会在条件上继续执行主线程并将方法返回视为false。
public async Task<bool> SomeMethod
{
if(await AsyncMethod(param))
{
//Do something
}
}
异步方法定义如下:
public async Task<bool> AsyncMethod(SomeClass param)
{
//Do something
}
await
关键字,所以它应该等待函数返回,为什么你觉得它不会等呢? - CodingGorillaawait
,它就会立即返回。这就是await
的重点,它是异步的,而不是同步等待。 - ServyAsyncMethod
的结果之前,它不应继续执行SomeMethod
的其余部分。换句话说,每当调度SomeMethod
时,除非它已经收到对AsyncMethod
的调用结果,否则它不应进入或通过if
。 - CodingGorilla