Wait-Event
Espera hasta que se genere un evento determinado antes de continuar ejecutándose.
Sintaxis
Default (Es el valor predeterminado).
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.
Propiedades del parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 0 |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | True |
| Valor de los argumentos restantes: | 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.
Propiedades del parámetro
| Tipo: | Int32 |
| Valor predeterminado: | -1 |
| Admite caracteres comodín: | False |
| DontShow: | False |
| Alias: | TimeoutSec |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Mandatory: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
String
Salidas
PSEventArgs
Notas
Los eventos, las suscripciones de eventos y la cola de eventos solo existen en la sesión actual. Si se cierra la sesión actual, se descarta la fila de eventos y se cancela la suscripción al evento.