Wait-Event (Microsoft.PowerShell.Utility)
Wait-Event
- Модуль:
- Microsoft.PowerShell.Utility
Ожидает, пока не возникнет определенное событие, прежде чем продолжить работу.
Синтаксис
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
- Позиция:
0
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
False
-Timeout
Указывает максимальное время в секундах, в течение которого Wait-Event ожидает возникновения события. Значение по умолчанию, -1, ожидает неопределенное время. Отсчет времени начинается с момента отправки команды Wait-Event.
Если указанное время превышено, ожидание заканчивается и возвращается командная строка, даже если событие не было вызвано. Сообщение об ошибке не отображается.
- Тип :
Int32
- Псевдонимы:
TimeoutSec
- Позиция:
Именованный
- Значение по умолчанию:
-1
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
Входы
Строка
Выходы
PSEventArgs
Примечания
События, подписки на события и очередь событий существуют только в текущем сеансе. Если вы закроете текущий сеанс, очередь событий будет удалена, а подписка на события будет отменена.