Поиск по сайту:

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

Примечания

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