等到特定事件引發後才繼續執行。

語法

Wait-Event [[-SourceIdentifier] <string>] [-Timeout <int>] [<CommonParameters>]

描述

Wait-Event Cmdlet 會暫停執行指令碼或函數直到特定事件引發為止。偵測到事件時會繼續執行。若要取消等候,請按 CTRL+C。

這項功能不但提供輪詢事件的替代方式,還能讓您決定以兩種不同的方式回應事件:一種是使用事件訂閱的 Action 參數,另一種是等候事件傳回後再以動作回應。

參數

-SourceIdentifier <string>

只等候有指定的來源識別元的事件。根據預設,Wait-Event 會等候任何事件。

必要?

false

位置?

1

預設值

All events

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Timeout <int>

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

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

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

System.String

輸出

System.String

附註

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

範例 1

C:\PS>wait-event

描述
-----------
這個命令會等候下一個引發的事件。






範例 2

C:\PS>wait-event -sourceIdentifier "ProcessStarted"

描述
-----------
這個命令會等候下一個引發且來源識別元為 "ProcessStarted" 的事件。






範例 3

C:\PS>$timer.Interval = 2000 
C:\PS> $timer.Autoreset = $false 
C:\PS> $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

C:\PS>wait-event -sourceIdentifier "ProcessStarted" -timeout 90

描述
-----------
這個命令會等候下一個引發且來源識別元為 "ProcessStarted" 的事件 (最多 90 秒)。如果超過指定的時間,等候便結束。






請參閱




目錄