私は非同期呼び出しのみを許可するライブラリを持っています。私のコードは同期する必要があります。次のコードは正しく動作しますか?誰もそれに問題を予見できますか?C#非同期呼び出しの同期化
RestResponse<T> response = null;
bool executedCallBack = false;
client.ExecuteAsync(request, (RestResponse<T> aSyncResponse)=>{
executedCallBack = true;
response = aSyncResponse;
});
while (!executedCallBack){
Thread.Sleep(100);
}
..continue execution synchronously
いいえ、私はIAsyncResultを取得しません。以下のManualResetEventとAutoResetEventの違いは何ですか? –
ワンショット使用の場合、違いはありません。 'ManualResetEvent'はあなたが' Reset() 'を呼び出すまで" set "状態のままですが、' AutoResetEvent'は待機中のスレッドのブロックを解除した後に自動的にリセットされます。通常、これはあなたが望むものです。私は特に、複数の待機中のスレッド(または同じスレッドによる連続した待機)が解放されるようにしたいときにのみ、 'ManualResetEvent'を使用します。 –