Ожидает определенного события, прежде чем продолжить выполнение.

Синтаксис

Wait-Event [[-SourceIdentifier] <string>] [-Timeout <int>] [<CommonParameters>]

Описание

Командлет Wait-Event приостанавливает выполнение скрипта или функции до возникновения заданного события. Выполнение возобновляется, когда будет зафиксировано данное событие. Чтобы отменить ожидание, нажмите сочетание клавиш CTRL+C.

Эта функция является альтернативным способом запроса события. Кроме того, она позволяет определить реакцию на событие двумя различными способами: с помощью параметра Action подписки на событие и путем ожидания события с последующим выполнением действия в ответ на событие.

Параметры

-SourceIdentifier <string>

Ожидает только события с указанным идентификатором источника. По умолчанию командлет Wait-Event ожидает любое событие.

Обязательно?

false

Позиция?

1

Значение по умолчанию

All events

Принимать входные данные из конвейера?

true (ByPropertyName)

Принимать подстановочные знаки?

false

-Timeout <int>

Определяет максимальное время (в секундах), в течение которого командлет Wait-Event ожидает события. Значение по умолчанию — -1, ждать бесконечно. Отсчет времени начинается с отправки команды Wait-Event.

Если указанное время истекло, цикл ожидания заканчивается и окно командной строки становится активным, даже если событие еще не произошло. Сообщение об ошибке не отображается.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

System.String

Выходные данные

System.String

Примечания

События, подписки на события и очередь событий существуют только в рамках текущего сеанса. Если завершить текущий сеанс, очередь событий будет очищена и подписка на события будет отменена.

Пример 1

C:\PS>wait-event

Описание
-----------
Эта команда ожидает ближайшего события.






Пример 2

C:\PS>wait-event -sourceIdentifier "ProcessStarted"

Описание
-----------
Эта команда ожидает ближайшего события с идентификатором источника "ProcessStarted".






Пример 3

C:\PS>$timer.Interval = 2000 
C:\PS> $timer.Autoreset = $false 
C:\PS> $timer.Enabled = $true; Wait-Event Timer.Elapsed

# After 2 seconds 

EventIdentifier  : 12 
Sender		 : System.Timers.Timer 
SourceEventArgs  : System.Timers.ElapsedEventArgs 
SourceArgs	 : {System.Timers.Timer, System.Timers.ElapsedEventArgs} 
SourceIdentifier : Timer.Elapsed 
TimeGenerated	: 6/10/2008 3:24:18 PM 
MessageData	: 
ForwardEvent	 : False

Описание
-----------
Эта команда использует командлет Wait-Event для ожидания события таймера, установленного на 2000 миллисекунд.






Пример 4

C:\PS>wait-event -sourceIdentifier "ProcessStarted" -timeout 90

Описание
-----------
Эта команда ожидает в течение 90 секунд очередного события с идентификатором источника "ProcessStarted". По истечении указанного времени ожидание прекращается.






См. также