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
はイベントを待機します。
型: | String |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Timeout
イベントが発生するまで待機 Wait-Event
最大時間 (秒単位) を指定します。 既定値は、無期限に待機することを示す -1 です。 Wait-Event
コマンドを送信すると、タイミングが開始されます。
指定された時間を超えた場合、イベントが発生していない場合でも、待機が終了し、コマンド プロンプトが返されます。 エラー メッセージは表示されません。
型: | Int32 |
Aliases: | TimeoutSec |
配置: | Named |
規定値: | -1 |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
出力
メモ
イベント、イベント サブスクリプション、およびイベント キューは、現在のセッションにのみ存在します。 現在のセッションを閉じた場合、イベント キューが破棄され、イベント サブスクリプションが取り消されます。
関連リンク
PowerShell