Webサービスへの非同期呼び出しを行うメソッドがあります。そのような何か:非同期メソッドの結果を取得
public static async Task<ReturnResultClass> GetBasicResponseAsync()
{
var r = await SomeClass.StartAsyncOp();
return await OtherClass.ProcessAsync(r);
}
そして、私は同期の代替を提供したい:
public static ReturnResultClass GetBasicResponse()
{
return GetBasicResponseAsync().Result;
}
しかし、ブロックResult
コールに。非同期操作と同じスレッド上で呼び出されるためです。どうすれば結果を同期させることができますか?
ありがとうございます!
ありがとうございます! 'ConfigureAwait'は私のlibの非同期クライアントに影響しますか?つまり、非同期操作が非同期になるか、すべてのクライアントに対して他のスレッドで実行されるのでしょうか? – gor
はい、非同期クライアントにも影響しますが、大丈夫です。非同期操作は非同期にとどまり、 'ConfigureAwait()'を使用するコードの継続部分はUIスレッドでは実行されません。しかし、UIスレッドから始まるメソッド内の非同期コードはそこに残ります( 'ConfigureAwait()'も使わない限り)。 – svick