Wait-Event
特定のイベントが発生するまで待機してから、実行を継続します。
構文
Wait-Event
[[-SourceIdentifier] <String>]
[-Timeout <Int32>]
[<CommonParameters>]
説明
コマンドレットは Wait-Event
、特定のイベントが発生するまでスクリプトまたは関数の実行を中断します。 イベントが検出されると、実行が再開されます。 待機を取り消すには、Ctrl C キーを押します+。
この機能によって、イベントのポーリングに代わる別の方法が提供されます。 また、次の 2 つの方法でイベントへの応答を決定することもできます。
- イベント サブスクリプションの Action パラメーターを使用する
- イベントが返されるのを待ってから、アクションで応答する
例
例 1: 次のイベントを待つ
この例では、発生した次のイベントを待機します。
Wait-Event
例 2: 指定したソース識別子を持つイベントを待機する
この例では、発生した次のイベントと、ソース識別子 ProcessStarted を持つイベントを待機します。
Wait-Event -SourceIdentifier "ProcessStarted"
例 3: タイマー経過イベントを待機する
この例では、 コマンドレットを Wait-Event
使用して、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: 指定されたタイムアウト後にイベントを待機する
次の使用例は、 ProcessStarted のソース識別子を持つ次のイベントが発生するまで最大 90 秒待機します。 指定された時間が経過すると、待機は終了します。
Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90
パラメーター
-SourceIdentifier
このコマンドレットがイベントを待機するソース識別子を指定します。
既定では、 Wait-Event
はイベントを待機します。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Timeout
イベントが発生するまで待機する Wait-Event
最大時間 (秒単位) を指定します。 既定値は、無期限に待機することを示す -1 です。 コマンドを送信すると、タイミングが Wait-Event
開始されます。
指定された時間を超えた場合、イベントが発生していない場合でも、待機が終了し、コマンド プロンプトが返されます。 エラー メッセージは表示されません。
Type: | Int32 |
Aliases: | TimeoutSec |
Position: | Named |
Default value: | -1 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
出力
メモ
イベント、イベント サブスクリプション、およびイベント キューは、現在のセッションにのみ存在します。 現在のセッションを閉じた場合、イベント キューが破棄され、イベント サブスクリプションが取り消されます。