Sdílet prostřednictvím


Wait-Event

Před pokračováním ve spuštění čeká na vyvolání konkrétní události.

Syntaxe

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

Description

Rutina Wait-Event pozastaví provádění skriptu nebo funkce, dokud se negeneruje konkrétní událost. Provádění se obnoví při zjištění události. Pokud chcete čekání zrušit, stiskněte ctrl +C.

Tato funkce poskytuje alternativu k dotazování na událost. Umožňuje také určit odpověď na událost dvěma různými způsoby:

  • pomocí parametru Akce odběru událostí
  • čekání na vrácení události a následné reakce s akcí

Příklady

Příklad 1: Čekání na další událost

Tento příklad čeká na další událost, která je vyvolána.

Wait-Event

Příklad 2: Čekání na událost se zadaným identifikátorem zdroje

Tento příklad čeká na další událost, která je vyvolána a která má zdrojový identifikátor ProcessStarted.

Wait-Event -SourceIdentifier "ProcessStarted"

Příklad 3: Čekání na uplynulou událost časovače

Tento příklad používá rutinu Wait-Event k čekání na událost časovače na časovač, který je nastavený na 2000 milisekund.

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

Příklad 4: Čekání na událost po zadaném časovém limitu

Tento příklad čeká až 90 sekund na další událost, která je vyvolána a která má zdrojový identifikátor ProcessStarted. Pokud vyprší zadaný čas, čekání skončí.

Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90

Parametry

-SourceIdentifier

Určuje identifikátor zdroje, který tato rutina čeká na události. Ve výchozím nastavení Wait-Event čeká na jakoukoli událost.

Typ:String
Position:0
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Timeout

Určuje maximální dobu v sekundách, která Wait-Event čeká na výskyt události. Výchozí hodnota -1 počká na neomezenou dobu. Časování se spustí při odeslání Wait-Event příkazu.

Pokud je zadaný čas překročen, čekání skončí a příkazový řádek se vrátí, i když událost nebyla vyvolána. Nezobrazí se žádná chybová zpráva.

Typ:Int32
Aliasy:TimeoutSec
Position:Named
Default value:-1
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

String

Výstupy

PSEventArgs

Poznámky

Události, odběry událostí a fronta událostí existují pouze v aktuální relaci. Pokud zavřete aktuální relaci, fronta událostí se zahodí a odběr události se zruší.