新しい async/await パターンを理解しようとしているのですが、答えが見つからない質問が 1 つあります。つまり、メソッドを async でデコレートする必要があるのか、他の async 関数からそれらのメソッドを呼び出すつもりなのか、または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