特定の条件が満たされるまでブロックされる(特定のタイムアウトが経過しない限り)一般的な方法で使用する方法を作成したいと考えています。特定の条件が満たされるまで「ブロック」する最良の方法
コードでの使用はのようなものだろう:私はしばらくの間(..)ループを使用して、それを実装しようとしている
WaitUntil(condition);
、しかし、これは無駄のように思えます。
現在の実装では、TIMEOUTで期限切れになる「ワンオフ」タイマーを初期化しています。私はwhileループを実行していて、タイマーがタイムアウトしたかどうかをチェックしていれば例外をスローします。
このような方法を実装する簡単で効果的な手法はありますか?
私は代理人とイベントを調べます – Joe
ミューテックス、セマフォ、ManualResetEvent、AutoResetEvent、CountdownEventなどを見てください。System.Threadingネームスペースを見てください。 –
もっと技術的に何かを同期したいと言っています。オペレーティングシステムは、whileループでビジー状態を待たないようにするメカニズムを提供します。 Yoyにはセマフォ、クリティカルセクション、手動/自動リセットイベントなどのオプションがあります。 1つを選択するには、あなたが待っているコンディションが何であるかを言う必要があります。同期のための1つの汎用関数は、WaitForSingleObjectです。 – pkmiec