为了理解新的 async/await 模式,我有一个问题我找不到答案,即我是否应该用 async 装饰我的方法,如果我打算从其他 async 函数调用这些方法,或者只是 return Task
s在适当情况下?
换句话说,A、B 或 C 类中哪一个是最好的,为什么?
class A<T>
{
public async Task<T> foo1() //Should be consumed
{
return await foo2();
}
public async Task<T> foo2() //Could be consumed
{
return await foo3();
}
private async Task<T> foo3() //Private
{
return await Task.Run(...);
}
}
class B<T>
{
public async Task<T> foo1() //Should be consumed
{
return await foo2();
}
public async Task<T> foo2() //Could be consumed
{
return await foo3();
}
private Task<T> foo3() //Private
{
return Task.Run(...);
}
}
class C<T>
{
public async Task<T> foo1() //Should be consumed
{
return await foo2();
}
public Task<T> foo2() //Could be consumed
{
return foo3();
}
private Task<T> foo3() //Private
{
return Task.Run(...);
}
}
过度装饰方法似乎是多余的,所以我自然倾向于C
,但与此同时,Task<T>
除非您使用await
关键字,否则使用起来感觉有些尴尬。