2
1は、コールバックでは、次の方法を持っている場合:非同期コールバックが必要ですか?
await MethodWithCallback(async() =>
{
await _myOtherService.AnotherExcitingAsync();
});
それともそれは私が非同期を提供することをお勧めです:
public async Task MethodWithCallback(Action callback)
{
await _myService.SomeExcitingAsync();
callback();
}
は、それが安全な/のように、非同期コールバックに渡すことをお勧めします私の方法のバージョンは以下のように?違いはありますか?
public async Task MethodWithCallback(Func<Task> callback) {
await _myService.SomeExcitingAsync();
await callback();
}
'コールバックで次のメソッドがある場合は、'それはなぜですか?タスクは完了コールバックを置き換えます。このメソッドは 'Task'を返します。したがって、コールバックはまったく必要ありません。 –
私のサンプルコードは、質問を補うために故意に考案されたものです。私がこの質問をする実際の方法はもっと複雑で、合法的にFuncを取っています - それはlambdaを渡すときに非同期コードに二重に注意する必要があることを私に気付かせます。非同期ラムダを使うのは非常に簡単です。期待されていません。 – nullPainter
(私の選択は「コールバック」が貧弱だった - 私は完了コールバックではなく、Func/Actionを意味していた) – nullPainter