如果我有这样的代码:
public async Task Test1()
{
Task task1 = MakeEggAsync();
Task task2 = MakeBaconAsync();
await Task.WhenAll(task1, task2);
}
async Task MakeBaconAsync()
{
while (CookIsBusy)
{
//
await Task.Delay(100);
}
}
async Task MakeEggAsync()
{
await makeEgg2Async();
}
async Task makeEgg2Async()
{
while (CookIsBusy)
{
//
await Task.Delay(100);
}
}当计算机到达这一行后,...will会返回到主Test1()吗?
async Task MakeEggAsync()
{
await makeEgg2Async();
}...or只有在延迟之后才会返回吗?我知道使用线程,它只有在等待之后才会返回。对不起,我是新手,我正在努力学习。
计算机是在访问await之后还是在访问Task.Delay之后返回?这才是我真正想要问的。
发布于 2021-03-12 02:22:00
Every async method begins executing synchronously。
同样,等待的是对象,而不是方法。换句话说,这段代码:
async Task MakeEggAsync()
{
await makeEgg2Async();
}与下面的代码大致相同:
async Task MakeEggAsync()
{
var task = makeEgg2Async();
await task;
}因此,在调用Task.Delay之后,计算机返回到Test1。
https://stackoverflow.com/questions/66588254
复制相似问题