繁体   English   中英

等待与等待 Task.Delay 尝试学习

[英]Await vs await Task.Delay trying to learn

如果我有代码说:

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);
    }
}

...计算机到达这条线后会返回到主Test1()吗?

async Task MakeEggAsync()
{
    await makeEgg2Async();
}

...或者它只会在延迟后返回? 我知道线程只有在你等待之后才会返回。 对不起,我是新手,我正在努力学习。

计算机在await或到达Task.Delay后是否返回? 这是我真正要问的。

每个async方法都开始同步执行

此外,等待的是对象,而不是方法 换句话说,这段代码:

async Task  MakeEggAsync()
{
  await makeEgg2Async();
}

与此代码大致相同:

async Task  MakeEggAsync()
{
  var task = makeEgg2Async();
  await task;
}

所以计算机在Task.Delay被调用后返回到Test1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM