は、私は、非同期メソッドがあります。非同期および同期方法
public async Task<Foo> GetFooAsync();
をそして私はその同期バージョンが必要です。このような何か:
public Foo GetFoo();
それは良い考えですか、このメソッドは任意の非自明な問題を抱えている私は本当に全くGetFooAsync
のコードを書き換えることはしたくないと私は、このような
public Foo GetFoo()
{
return GetFooAsync().GetAwaiter().GetResult();
}
として何かをしたいですか?私が同期コンテキストでGetFooAsync().Result
を使用するかどうか分かっているように、私はデッドロックに直面する可能性があります。しかし、GetFooAsync().GetAwaiter().GetResult()
はどうですか?
''返すGetFooAsync()。結果; ''? –
'.Result'を使わないでください。' .GetAwaiter()。GetResult() 'は集約例外を処理するため、GetResult()は使用しません。 – Lloyd
同期バージョンが必要な場合は、shyncオーバーロードを個別に追加してください。 – Rahul