我在想 ,
为什么我要在true
的ctor中传递AutoResetEvent
?
我创建了一个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
)? 最佳答案
场景是调用WaitOne
的第一个线程应立即通过,而不会阻塞。
检查Silverlight documentation for AutoResetEvent(奇怪的是,.NET版本上的文档不相同):