C#でのManualResetEventの使い方は何ですか。
C#において、ManualResetEventは、あるスレッドが別のスレッドにイベントが発生したことを通知するための同期基本要素です。主なメソッドには以下のものがあります。
- ManualResetEventのコンストラクタ:ManualResetEventインスタンスを初期化し、初期状態を指定できる。
ManualResetEvent resetEvent = new ManualResetEvent(false); // 初始化为未终止状态
- Set()メソッド:ManualResetEventをシグナル状態に設定し、待機中のスレッドが続行できるようにします。
resetEvent.Set();
- Reset()メソッド:ManualResetEventを非シグナル状態に設定し、待機中のスレッドの続行をブロックします。
resetEvent.Reset();
- WaitOne() メソッドは、シグナルを受けるまで現在のスレッドを待機させます。
resetEvent.WaitOne();
- WaitOne(timeout) メソッド:現在のスレッドを遅延させ、シグナルを受信するかタイムアウトするまで待機します。
resetEvent.WaitOne(1000); // 等待1秒钟
ManualResetEvent を使用すると、スレッドの同期や通信を簡単に実現することができます。例えば、マルチスレッド環境でスレッドの実行順序を調整することができます。