Partilhar via


Wait-Event

Aguarda até que um determinado evento seja levantado antes de continuar a correr.

Sintaxe

Default (Predefinição)

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

Description

O cmdlet Wait-Event suspende a execução de um script ou função até que um evento específico seja gerado. A execução é retomada quando o evento é detetado. Para cancelar a espera, pressione CTRL+C.

Esse recurso fornece uma alternativa à sondagem para um evento. Ele também permite que você determine a resposta a um evento de duas maneiras diferentes:

  • usando o parâmetro Action da assinatura do evento
  • aguardando o retorno de um evento e, em seguida, responda com uma ação

Exemplos

Exemplo 1: Aguarde o próximo evento

Este exemplo aguarda o próximo evento que é gerado.

Wait-Event

Exemplo 2: Aguarde um evento com um identificador de origem especificado

Este exemplo aguarda o próximo evento que é gerado e que tem um identificador de origem de ProcessStarted.

Wait-Event -SourceIdentifier "ProcessStarted"

Exemplo 3: Aguarde um evento de temporizador concluído

Este exemplo usa o cmdlet Wait-Event para aguardar um evento de temporizador em um temporizador definido para 2000 milissegundos.

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

Exemplo 4: Esperar por um evento após um tempo limite especificado

Este exemplo aguarda até 90 segundos pelo próximo evento que é gerado e que tem um identificador de origem de ProcessStarted. Se o tempo especificado expirar, a espera termina.

Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90

Parâmetros

-SourceIdentifier

Especifica o identificador de origem pelo qual este cmdlet aguarda eventos. Por padrão, Wait-Event aguarda qualquer evento.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:0
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Timeout

Especifica o tempo máximo, em segundos, que Wait-Event aguarda para que o evento ocorra. O padrão, -1, aguarda indefinidamente. O tempo começa quando você envia o comando Wait-Event.

Se o tempo especificado for excedido, a espera termina e o prompt de comando retorna, mesmo que o evento não tenha sido gerado. Nenhuma mensagem de erro é exibida.

Propriedades dos parâmetros

Tipo:Int32
Default value:-1
Suporta carateres universais:False
NãoMostrar:False
Aliases:TimeoutSec

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

String

Saídas

PSEventArgs

Notas

Eventos, assinaturas de eventos e a fila de eventos existem somente na sessão atual. Se você fechar a sessão atual, a fila de eventos será descartada e a assinatura do evento será cancelada.