Wait-Event
Attende finché non viene generato un determinato evento prima di continuare l'esecuzione.
Sintassi
Wait-Event [[-SourceIdentifier] <string>] [-Timeout <int>] [<CommonParameters>]
Descrizione
Il cmdlet Wait-Event sospende l'esecuzione di uno script o una funzione finché non viene generato un determinato evento. L'esecuzione viene ripresa quando viene rilevato l'evento. Per annullare l'attesa, premere CTRL+C.
Questa funzionalità fornisce un'alternativa al polling per un evento. Consente inoltre di determinare la risposta a un evento in due modi diversi: utilizzando il parametro Action della sottoscrizione dell'evento e attendendo un evento da restituire, per poi rispondere con un'azione.
Parametri
-SourceIdentifier <string>
Attende solo gli eventi con l'identificatore di origine specificato. Per impostazione predefinita, Wait-Events attende un evento qualsiasi.
Obbligatorio? |
false |
Posizione? |
1 |
Valore predefinito |
All events |
Accettare input da pipeline? |
true (ByPropertyName) |
Accettare caratteri jolly? |
false |
-Timeout <int>
Determina il tempo massimo, in secondi, per cui Wait-Event attende che l'evento si verifichi. Con l'impostazione predefinita, -1, l'attesa è illimitata. Il calcolo del tempo inizia quando si invia il comando Wait-Event.
Se il periodo di tempo specificato viene superato, l'attesa si conclude e viene visualizzato il prompt dei comandi anche se l'evento non è stato generato. Non viene visualizzato alcun messaggio di errore.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.String |
Output |
System.String |
Note
Gli eventi, le sottoscrizioni di eventi e la coda degli eventi esistono solo nella sessione corrente. Se si chiude la sessione corrente, la coda degli eventi viene eliminata e la sottoscrizione di eventi viene annullata.
Esempio 1
C:\PS>wait-event
Descrizione
-----------
Questo comando attende il prossimo evento generato.
Esempio 2
C:\PS>wait-event -sourceIdentifier "ProcessStarted"
Descrizione
-----------
Questo comando attende il prossimo evento generato che dispone di un identificatore di origine "ProcessStarted".
Esempio 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
Descrizione
-----------
Questo comando utilizza il cmdlet Wait-Event per attendere un evento di un timer impostato per 2000 millisecondi.
Esempio 4
C:\PS>wait-event -sourceIdentifier "ProcessStarted" -timeout 90
Descrizione
-----------
Questo comando attende per un massimo di 90 secondi il successivo evento generato che dispone di un identificatore di origine "ProcessStarted". Se il tempo specificato viene superato, l'attesa termina.
Vedere anche
Concetti
Register-ObjectEvent
Register-EngineEvent
Register-WmiEvent
Unregister-Event
Get-Event
New-Event
Remove-Event
Wait-Event
Get-EventSubscriber