共用方式為


Wait-Event

等到引發特定事件,再繼續執行。

語法

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

Description

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

指定等候事件 等候事件發生的時間上限,以秒為單位 。 預設值 -1 會無限期等候。 當您提交 Wait-Event 命令時,時間就會開始。

如果超過指定的時間,則等候會結束,而且命令提示字元會傳回 ,即使事件尚未引發也一樣。 不會顯示任何錯誤訊息。

類型:Int32
別名:TimeoutSec
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

String

輸出

PSEventArgs

備註

  • 事件、事件訂閱和事件佇列只存在於目前的會話中。 如果您關閉目前的會話,則會捨棄事件佇列,並取消事件訂閱。