私が思っていた、 新しいAutoResetEvent(true)C#での使用?
なぜ私が今までAutoResetEvent
のctorのでtrue
を渡したいでしょう
私はwaitHandle
を作成し、WaitOne()
と電話をかける人は、実際にはとなるでしょう。です。
true
でインスタンス化した場合、それはすぐに通知されたかのようになります。これは待機せずに通常のフローのようです。
EventWaitHandle _waitHandle = new AutoResetEvent (false);
void Main()
{
new Thread (Waiter).Start();
Thread.Sleep (1000);
_waitHandle.Set();
Console.ReadLine();
}
void Waiter()
{
Console.WriteLine ("AAA");
_waitHandle.WaitOne();
Console.WriteLine ("BBBB");
}
出力:
AAA...(delay)...BBB
はへの変更:EventWaitHandle _waitHandle = new AutoResetEvent (true);
、出力は次のようになります。
AAABBB
質問:
- 私が今までにしたいと思うのはなぜ これをする ? (
true
に合格)?
の言葉「のリリースでは、」非常に混乱していますが、スレッドCPUのタイムスライスをリリースしているように思え、。実際には '.WaitOne()'の呼び出しを続けているようにしています。 – newprint
あなたはそうです、混乱します。そのドキュメントページにコメントを追加しました – jeroenh