| external help file | Microsoft.PowerShell.Commands.Utility.dll-Help.xml |
|---|---|
| Locale | en-US |
| Module Name | Microsoft.PowerShell.Utility |
| ms.date | 04/23/2020 |
| online version | https://learn.microsoft.com/powershell/module/microsoft.powershell.utility/wait-event?view=powershell-7.6&WT.mc_id=ps-gethelp |
| schema | 2.0.0 |
| title | 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-EventThis 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.ElapsedComputerName :
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 90Specifies 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: FalseSpecifies 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: FalseThis 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.