This question already has answers here:
Does compiler perform “return value optimization” on chains of async methods
(2个答案)
Any difference between “await Task.Run(); return;” and “return Task.Run()”?
(4个答案)
5年前关闭。
假设我有一个叫做
现在,我有一个只做一件事
我的问题是:在BarAsync中,我应该使用
我尝试环顾四周,但没有找到这种模式的最终答案。
(2个答案)
Any difference between “await Task.Run(); return;” and “return Task.Run()”?
(4个答案)
5年前关闭。
假设我有一个叫做
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;
}
现在,我有一个只做一件事
call fooAsync()
的waiter方法。public Task<string> BarAsync(string foo, string bar)
{
return this.FooAsync(foo, bar);
}
我的问题是:在BarAsync中,我应该使用
return await this.FooAsync()
还是return this.FooAsync()
,为什么?我尝试环顾四周,但没有找到这种模式的最终答案。
最佳答案
我在这里的问题是:在BarAsync中,我应该使用return等待this.FooAsync()还是返回this.FooAsync(),为什么?
您应该使用return FooAsync(foo, bar)
。在这种情况下,除了调用另一个异步方法外,您没有做任何其他事情,因此,通过避免async
和await
可以避免少量的开销。
10-07 16:48