返回await fooAsync()或在方法中返回fooAsync()

本文关键字:返回 fooAsync 方法 await | 更新日期: 2023-09-27 17:54:20

假设我有一个方法叫做fooAsync():

public Task<T> FooAsync<T>(T foo, T bar)
{
    // do some stuff
    var returnFoo = await netLibraryMethodAsync(x, y, z);
    // do some more stuff
    return returnFoo as T;
}

现在我有一个awaiter方法,它只做一件事call fooAsync()

public Task<string> BarAsync(string foo, string bar)
{
    return this.FooAsync(foo, bar);
}

我的问题是:在BarAsync内部,我应该使用return await this.FooAsync()return this.FooAsync(),为什么?

我试着四处寻找,但还没有找到这个模式的确凿答案。

返回await fooAsync()或在方法中返回fooAsync()

我的问题是:在BarAsync内部,我应该使用return await this.FooAsync()还是return this.FooAsync(),为什么?

你应该使用return FooAsync(foo, bar)。在这种情况下,除了调用另一个异步方法之外,您没有做任何事情,因此通过避免asyncawait,您可以避免少量的开销。