Ответ 1
-
WaitHandle.WaitOne()
- это метод экземпляра, который будет блокироваться до тех пор, пока не будет сигнализирован дескриптор ожидания (когда операция будет завершена). Если это уже было сообщено ранее (т.е. Операция уже завершена), возможно, что вызовWaitOne()
не будет заблокирован. -
WaitHandle.WaitAll()
иWaitHandle.WaitAny()
являются статическими методами, которые позволяют вам одновременно указывать несколько команд ожидания:-
WaitHandle.WaitAll()
будет ждать, пока все указанные дескрипторы не будут переданы до того, как они вернутся. -
WaitHandle.WaitAny()
будет возвращен, как только будет указан любой из указанных ручек.
Эти методы позволяют одновременно отслеживать ряд выдающихся асинхронных операций.
-
Фон: AsyncWaitHandle
- это имя свойства в интерфейсе IAsyncResult
. Фактическим типом этого свойства является WaitHandle
, который является абстрактным базовым классом для таких типов, как Semaphore
, Mutex
и Manual/AutoResetEvent
.
См. также: Блокирование выполнения приложения с использованием AsyncWaitHandle (MSDN)