调用进一步的异步方法

时间:2018-03-03 13:01:49

标签: c# async-await

我有一种情况,我有两个异步方法,它们都具有相同的返回类型,一个调用另一个而不改变数据的形状。

public async Task<int> Foo() { return 1; }

public async Task<int> Bar() 
{ 
    return await Foo();
}

有没有理由在async函数中使用await / Bar,还是可以简单地返回内部方法创建的任务?

那么,例如,Bar的这个版本是否更具性能?它会减少一个块吗?

public Task<int> Bar() 
{
    return Foo();
}

当异步调用以这种方式链接时,幕后实际发生了什么?

1 个答案:

答案 0 :(得分:1)

Stephen Cleary写到了这一点,eliding the async

有一些值得注意的问题,最让我感到震惊的是异常处理问题。

我停止删除它,现在通常在链中写async