external help file | Locale | Module Name | ms.date | online version | schema | title |
---|---|---|---|---|---|---|
Microsoft.PowerShell.Commands.Utility.dll-Help.xml |
en-US |
Microsoft.PowerShell.Utility |
04/23/2020 |
2.0.0 |
Wait-Event |
Waits until a particular event is raised before continuing to run.
Wait-Event [[-SourceIdentifier] <String>] [-Timeout <Int32>] [<CommonParameters>]
The Wait-Event
cmdlet suspends execution of a script or function until a particular event is
raised. Execution resumes when the event is detected. To cancel the wait, press
CTRL+C.
This feature provides an alternative to polling for an event. It also allows you to determine the response to an event in two different ways:
- using the Action parameter of the event subscription
- waiting for an event to return and then respond with an action
This example waits for the next event that is raised.
Wait-Event
This example waits for the next event that is raised and that has a source identifier of ProcessStarted.
Wait-Event -SourceIdentifier "ProcessStarted"
This example uses the Wait-Event
cmdlet to wait for a timer event on a timer that is set for 2000 milliseconds.
$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 :
This example waits up to 90 seconds for the next event that is raised and that has a source identifier of ProcessStarted. If the specified time expires, the wait ends.
Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90
Specifies the source identifier that this cmdlet waits for events.
By default, Wait-Event
waits for any event.
Type: System.String
Parameter Sets: (All)
Aliases:
Required: False
Position: 0
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False
Specifies the maximum time, in seconds, that Wait-Event
waits for the event to occur. The default,
-1, waits indefinitely. The timing starts when you submit the Wait-Event
command.
If the specified time is exceeded, the wait ends and the command prompt returns, even if the event has not been raised. No error message is displayed.
Type: System.Int32
Parameter Sets: (All)
Aliases: TimeoutSec
Required: False
Position: Named
Default value: -1
Accept pipeline input: False
Accept wildcard characters: False
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
Events, event subscriptions, and the event queue exist only in the current session. If you close the current session, the event queue is discarded and the event subscription is canceled.