Wait-Event
Ожидает, пока не будет вызвано определенное событие, прежде чем продолжить выполнение.
Синтаксис
Wait-Event
[[-SourceIdentifier] <String>]
[-Timeout <Int32>]
[<CommonParameters>]
Описание
Командлет Wait-Event
приостанавливает выполнение скрипта или функции до тех пор, пока не будет вызвано определенное событие. Выполнение возобновляется при обнаружении события. Чтобы отменить ожидание, нажмите клавиши CTRL +C.
Эта функция предоставляет альтернативу опросу для события. Он также позволяет определить ответ на событие двумя разными способами:
- использование параметра Action подписки на событие
- ожидание возврата события, а затем реагирование с помощью действия
Примеры
Пример 1. Ожидание следующего события
В этом примере ожидается следующее событие, которое вызывается.
Wait-Event
Пример 2. Ожидание события с указанным идентификатором источника
В этом примере ожидается следующее событие, которое вызывается и имеется исходный идентификатор ProcessStarted.
Wait-Event -SourceIdentifier "ProcessStarted"
Пример 3. Ожидание события таймера, прошедшего
В этом примере используется командлет Wait-Event
для ожидания события таймера в таймере, заданном в 2000 миллисекундах.
$Timer = New-Object Timers.Timer
$objectEventArgs = @{
InputObject = $Timer
EventName = 'Elapsed'
SourceIdentifier = 'Timer.Elapsed'
}
Register-ObjectEvent @objectEventArgs
$Timer.Interval = 2000
$Timer.AutoReset = $False
$Timer.Enabled = $True
Wait-Event Timer.Elapsed
ComputerName :
RunspaceId : bb560b14-ff43-48d4-b801-5adc31bbc6fb
EventIdentifier : 1
Sender : System.Timers.Timer
SourceEventArgs : System.Timers.ElapsedEventArgs
SourceArgs : {System.Timers.Timer, System.Timers.ElapsedEventArgs}
SourceIdentifier : Timer.Elapsed
TimeGenerated : 4/23/2020 2:30:37 PM
MessageData :
Пример 4. Ожидание события после указанного времени ожидания
В этом примере ожидается до 90 секунд на следующее событие, которое вызывается и имеет исходный идентификатор ProcessStarted. Если истекает указанное время, ожидание заканчивается.
Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90
Параметры
-SourceIdentifier
Указывает исходный идентификатор, который этот командлет ожидает событий.
По умолчанию Wait-Event
ожидает любого события.
Тип: | String |
Position: | 0 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Timeout
Указывает максимальное время в секундах, которое Wait-Event
ожидает возникновения события. Значение по умолчанию -1 ожидает неограниченное время. Время начинается при отправке команды Wait-Event
.
Если указанное время превышено, ожидание заканчивается и командная строка возвращается, даже если событие не было поднято. Сообщение об ошибке не отображается.
Тип: | Int32 |
Aliases: | TimeoutSec |
Position: | Named |
Default value: | -1 |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Выходные данные
Примечания
События, подписки на события и очередь событий существуют только в текущем сеансе. При закрытии текущего сеанса очередь событий удаляется, а подписка на события отменяется.
Связанные ссылки
PowerShell