Wait-Event

等待直到引发特定事件,然后继续运行。

语法

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

说明

Wait-Event cmdlet 挂起脚本或函数的执行,直到引发特定事件。 检测到事件时,执行将恢复。 若要取消等待,请按 Ctrl+C。

此功能提供轮询事件的替代方法。 它还允许你以两种不同的方式确定对事件的响应:通过使用事件订阅的 Action 参数,以及等待事件返回,然后使用操作进行响应。

示例

示例 1:等待下一个事件

PS C:\> Wait-Event

此命令将等待引发的下一个事件。

示例 2:等待具有指定源标识符的事件

PS C:\> Wait-Event -SourceIdentifier "ProcessStarted"

此命令将等待引发并具有 ProcessStarted 源标识符的下一个事件。

示例 3:等待计时器已用事件

PS C:\> $Timer.Interval = 2000
PS C:\> $Timer.Autoreset = $False
PS C:\> $Timer.Enabled = $True; Wait-Event Timer.Elapsed
# After 2 seconds
EventIdentifier  : 12
Sender           : System.Timers.Timer
SourceEventArgs  : System.Timers.ElapsedEventArgs
SourceArgs       : {System.Timers.Timer, System.Timers.ElapsedEventArgs}
SourceIdentifier : Timer.Elapsed
TimeGenerated    : 6/10/2008 3:24:18 PM
MessageData      :
ForwardEvent     : False

此命令使用 Wait-Event cmdlet 等待设置为 2000 毫秒的计时器上的计时器事件。

示例 4:等待指定超时后的事件

PS C:\> Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90

此命令最多等待 90 秒,等待引发且源标识符为“ProcessStarted”的下一个事件。 如果指定的时间过期,则等待结束。

参数

-SourceIdentifier

指定此 cmdlet 等待事件的源标识符。 默认情况下,Wait-Event 等待任何事件。

类型:String
Position:0
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Timeout

指定 Wait-Event 等待事件发生的最长时间(以秒为单位)。 默认值 -1 无限期等待。 提交 Wait-Event 命令时,计时开始。

如果超出指定时间,则等待结束,并且命令提示符返回,即使尚未引发该事件。 不会显示任何错误消息。

类型:Int32
别名:TimeoutSec
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

String

输出

PSEventArgs

备注

  • 事件、事件订阅和事件队列仅存在于当前会话中。 如果关闭当前会话,则会丢弃事件队列,并取消事件订阅。