Я пытаюсь понять этот сегмент кода здесь я нашел в Интернете:Понимание нескольких потоков и EventWaitHandle
private EventWaitHandle wh = new AutoResetEvent();
private void WorkerThread()
{
while(true)
{
wh.WaitOne();
//Do work.
}
}
public void StartWorking()
{
wh.Set();
}
Так что я понимаю, что нить, как только он попадает WaitOne() не будет блокировать до Set() вызывается, но что, если несколько потоков достигают .WaitOne()? Будут ли они заблокированы или только один? Если вызывается Set(), он освободит все потоки или только один?
Редактирование: я читаю больше и пробую его и следующий вопрос: если ManualResetEvent выполняет то, что я описал выше, как он себя ведет, когда сразу несколько потоков ожидают? Будет ли AutoResetEvent выпускать их по одному одновременно с одним вызовом Set()?
Спасибо за короткий и простой для понимания комментарий! Я просто боролся с ManualResetEvent и сразу использовал несколько потоков, когда увидел это. Задача решена! Большое спасибо :) – Ross