当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Wait-Event (Microsoft.PowerShell.Utility)

作者:精品下载站 日期:2024-12-14 02:02:40 浏览:14 分类:玩电脑

Wait-Event (Microsoft.PowerShell.Utility)


Wait-Event

模块 :Microsoft.PowerShell.Utility

等待特定事件发生后再继续运行。

句法

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

描述

Wait-Event cmdlet 会暂停脚本或函数的执行,直到引发特定事件。当检测到事件时恢复执行。要取消等待,请按 CTRL+C。

此功能提供了轮询事件的替代方法。它还允许您以两种不同的方式确定对事件的响应:

  • 使用事件订阅的 Action 参数
  • 等待事件返回,然后用操作进行响应

示例

示例 1:等待下一个事件

此示例等待引发的下一个事件。

Wait-Event

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

此示例等待下一个引发且源标识符为 ProcessStarted 的事件。

Wait-Event -SourceIdentifier "ProcessStarted"

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

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

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

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

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

Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90

参数

-SourceIdentifier

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

类型 :

String

位置:

0

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-Timeout

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

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

类型 :

整数32

别名:

TimeoutSec

位置:

命名

默认值:

-1

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

字符串

输出

PSEventArgs

笔记

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

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯