Мне было интересно,
Почему мне когда-либо хотелось передать 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
)?