Compartir a través de


Wait-Event

Espera hasta que se genere un evento determinado antes de continuar ejecutándose.

Sintaxis

Wait-Event
    [[-SourceIdentifier] <String>]
    [-Timeout <Int32>]
    [<CommonParameters>]

Description

El cmdlet Wait-Event suspende la ejecución de un script o función hasta que se genere un evento determinado. La ejecución se reanuda cuando se detecta el evento. Para cancelar la espera, presione CTRL+C.

Esta característica proporciona una alternativa al sondeo de un evento. También permite determinar la respuesta a un evento de dos maneras diferentes:

  • uso del parámetro Action de la suscripción de eventos
  • esperando a que un evento devuelva y, a continuación, responda con una acción

Ejemplos

Ejemplo 1: Esperar al siguiente evento

En este ejemplo se espera el siguiente evento que se genera.

Wait-Event

Ejemplo 2: Esperar un evento con un identificador de origen especificado

En este ejemplo se espera el siguiente evento que se genera y que tiene un identificador de origen de ProcessStarted.

Wait-Event -SourceIdentifier "ProcessStarted"

Ejemplo 3: Esperar un evento transcurrido del temporizador

En este ejemplo se usa el cmdlet Wait-Event para esperar un evento de temporizador en un temporizador establecido para 2000 milisegundos.

$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      :

Ejemplo 4: Esperar un evento después de un tiempo de espera especificado

Este ejemplo espera hasta 90 segundos para el siguiente evento que se genera y que tiene un identificador de origen de ProcessStarted. Si expira el tiempo especificado, finaliza la espera.

Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90

Parámetros

-SourceIdentifier

Especifica el identificador de origen que este cmdlet espera para eventos. De forma predeterminada, Wait-Event espera cualquier evento.

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-Timeout

Especifica el tiempo máximo, en segundos, que Wait-Event espera a que se produzca el evento. El valor predeterminado, -1, espera indefinidamente. El tiempo se inicia al enviar el comando Wait-Event.

Si se supera el tiempo especificado, finaliza la espera y el símbolo del sistema devuelve, incluso si no se ha generado el evento. No se muestra ningún mensaje de error.

Tipo:Int32
Alias:TimeoutSec
Posición:Named
Valor predeterminado:-1
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

String

Salidas

PSEventArgs

Notas

Los eventos, las suscripciones de eventos y la cola de eventos solo existen en la sesión actual. Si cierra la sesión actual, se descarta la cola de eventos y se cancela la suscripción de eventos.