考虑以下代码:
public static void Run() {
DoStuffAsync();
}
public static async Task DoStuffAsync() {
PerformCalc();
await DoLongTaskAsync();
PerformAnotherCalc();
}
假设我调用了 Run()
。关于行为,我有几个问题:
PerformCalc()
方法会同步在与调用Run()
相同的线程上被调用吗?DoLongTaskAsync()
方法会异步或同步地被调用?换句话说,DoLongTaskAsync()
完成之前,PerformAnotherCalc()
方法是否可以被调用?- 随后,
DoStuffAsync()
方法是否可以在执行DoLongAsyncTask()
之前返回?
DoLongTaskAsync
确实是异步的并返回一个未完成的任务)返回,但不会完成。