Позволяет потоку ждать уведомления или сигнала от одного или нескольких потоков, что бы продолжить исполнение.
System.Threading.EventWaitHandle представляет событие синхронизации потоков и может быть в сигнальном или несигнальном состоянии. Два важных метода
- Set - устанавливает сигнальное состояние события, что позволяет продолжить выполнение одному или нескольким ожидающим потокам;
- Reset - задает несигнальное состояние события, вызывая блокирование потоков; System.Threading.AutoResetEvent является производным от System.Threading.EventWaitHandle и при получении сигнала автоматически сбрасывается в сигнальное состояние после освобождения одиночного потока в состоянии ожидания.
Реализовать многопоточное консольное приложение которое выводит на консоль бесконечную последовательность строк ping и pong в соответсвии со следующими условиями:
- Для вывод ping и pong используются разные потоки
- Первым выводится ping
- После ping выводится pong
- После pong выводится ping
ping
pong
ping
pong
ping
pong
pong
pong