Dela via


Wait-Event

Väntar tills en viss händelse aktiveras innan den fortsätter att köras.

Syntax

Default (Standard)

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

Description

Cmdleten Wait-Event pausar körningen av ett skript eller en funktion tills en viss händelse utlöses. Körningen återupptas när händelsen identifieras. Om du vill avbryta väntan trycker du på CTRL+C.

Den här funktionen är ett alternativ till avsökning för en händelse. Du kan också fastställa svaret på en händelse på två olika sätt:

  • med parametern Action för händelseprenumerationen
  • väntar på att en händelse ska returneras och sedan svara med en åtgärd

Exempel

Exempel 1: Vänta på nästa händelse

Det här exemplet väntar på nästa händelse som aktiveras.

Wait-Event

Exempel 2: Vänta på en händelse med en angiven källidentifierare

Det här exemplet väntar på nästa händelse som utlöses och som har en källidentifierare för ProcessStarted.

Wait-Event -SourceIdentifier "ProcessStarted"

Exempel 3: Vänta tills en tidsinställd händelse har förflutit

I det här exemplet används cmdleten Wait-Event för att vänta på en timerhändelse på en timer som har angetts för 2 000 millisekunder.

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

Exempel 4: Vänta på en händelse efter en angiven tidsgräns

Det här exemplet väntar upp till 90 sekunder på nästa händelse som aktiveras och som har en källidentifierare för ProcessStarted. Om den angivna tiden går ut upphör väntetiden.

Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90

Parametrar

-SourceIdentifier

Anger den källidentifierare som den här cmdleten väntar på händelser. Som standard väntar Wait-Event på alla händelser.

Parameteregenskaper

Typ:String
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:0
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

-Timeout

Anger den maximala tid i sekunder som Wait-Event väntar på att händelsen ska inträffa. Standardvärdet -1 väntar på obestämd tid. Tidpunkten startar när du skickar kommandot Wait-Event.

Om den angivna tiden överskrids avslutas väntetiden och kommandotolken returneras, även om händelsen inte har utlösts. Inget felmeddelande visas.

Parameteregenskaper

Typ:Int32
Standardvärde:-1
Stöder jokertecken:False
DontShow:False
Alias:TimeoutSec

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

CommonParameters

Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.

Indata

String

Utdata

PSEventArgs

Kommentarer

Händelser, händelseprenumerationer och händelsekön finns bara i den aktuella sessionen. Om du stänger den aktuella sessionen ignoreras händelsekön och händelseprenumerationen avbryts.