首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Await vs await Task.Delay尝试学习

Await vs await Task.Delay尝试学习
EN

Stack Overflow用户
提问于 2021-03-12 02:17:43
回答 1查看 58关注 0票数 0

如果我有这样的代码:

代码语言:javascript
复制
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()吗?

代码语言:javascript
复制
async Task MakeEggAsync()
{
    await makeEgg2Async();
}

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

计算机是在访问await之后还是在访问Task.Delay之后返回?这才是我真正想要问的。

EN

回答 1

Stack Overflow用户

发布于 2021-03-12 02:22:00

Every async method begins executing synchronously

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

代码语言:javascript
复制
async Task  MakeEggAsync()
{
  await makeEgg2Async();
}

与下面的代码大致相同:

代码语言:javascript
复制
async Task  MakeEggAsync()
{
  var task = makeEgg2Async();
  await task;
}

因此,在调用Task.Delay之后,计算机返回到Test1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66588254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档