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