Wait-Event
Wartet, bis ein bestimmtes Ereignis ausgelöst wird, bevor die Ausführung fortgesetzt wird.
Syntax
Wait-Event
[[-SourceIdentifier] <String>]
[-Timeout <Int32>]
[<CommonParameters>]
Beschreibung
Das Wait-Event
Cmdlet hält die Ausführung eines Skripts oder einer Funktion an, bis ein bestimmtes Ereignis ausgelöst wird. Die Ausführung wird fortgesetzt, wenn das Ereignis erkannt wird. Drücken Sie STRG+C, um die Wartezeit abzubrechen.
Diese Funktion bietet eine Alternative zum Abruf für ein Ereignis. Außerdem können Sie die Antwort auf ein Ereignis auf zwei verschiedene Arten bestimmen:
- Verwenden des Aktionsparameters des Ereignisabonnements
- warten, bis ein Ereignis zurückgegeben wird, und dann mit einer Aktion antworten
Beispiele
Beispiel 1: Warten auf das nächste Ereignis
In diesem Beispiel wird auf das nächste Ereignis gewartet, das ausgelöst wird.
Wait-Event
Beispiel 2: Warten auf ein Ereignis mit einem angegebenen Quellbezeichner
In diesem Beispiel wird auf das nächste Ereignis gewartet, das ausgelöst wird und den Quellbezeichner ProcessStarted aufweist.
Wait-Event -SourceIdentifier "ProcessStarted"
Beispiel 3: Warten auf ein verstrichenes Timerereignis
In diesem Beispiel wird das Wait-Event
Cmdlet verwendet, um auf ein Timerereignis für einen Timer zu warten, der auf 2000 Millisekunden festgelegt ist.
$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 :
Beispiel 4: Warten auf ein Ereignis nach einem angegebenen Timeout
In diesem Beispiel wird bis zu 90 Sekunden auf das nächste Ereignis gewartet, das ausgelöst wird und den Quellbezeichner ProcessStarted aufweist. Wenn die angegebene Zeit abgelaufen ist, wird der Wartevorgang beendet.
Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90
Parameter
-SourceIdentifier
Gibt den Quellbezeichner an, der von diesem Cmdlet auf Ereignisse gewartet wird.
Standardmäßig Wait-Event
wird auf ein beliebiges Ereignis gewartet.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Timeout
Gibt die maximale Zeit in Sekunden an, die Wait-Event
auf das Auftreten des Ereignisses wartet. Der Standardwert -1 wartet unbegrenzt. Das Timing beginnt, wenn Sie den Wait-Event
Befehl übermitteln.
Wenn die angegebene Zeit überschritten ist, wird der Wartevorgang beendet und die Befehlseingabeaufforderung wieder angezeigt, auch wenn das Ereignis nicht ausgelöst wurde. Es wird keine Fehlermeldung angezeigt.
Type: | Int32 |
Aliases: | TimeoutSec |
Position: | Named |
Default value: | -1 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
Ausgaben
Hinweise
Ereignisse, Ereignisabonnements und die Ereigniswarteschlange sind nur in der aktuellen Sitzung vorhanden. Wenn Sie die aktuelle Sitzung schließen, wird die Ereigniswarteschlange verworfen, und das Ereignisabonnement wird abgebrochen.