次の方法で共有


Wait-Event

実行を続行する前に、特定のイベントが発生するまで待機します。

構文

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

説明

Wait-Event コマンドレットは、特定のイベントが発生するまでスクリプトまたは関数の実行を中断します。 イベントが検出されると、実行が再開されます。 待機をキャンセルするには、Ctrl + C キーを押します。

この機能は、イベントのポーリングに代わる機能です。 また、イベント サブスクリプションの Action パラメーターを使用する方法と、イベントが返されるのを待ってからアクションで応答する、という 2 つの異なる方法でイベントへの応答を決定することもできます。

例 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 コマンドレットを使用して、2000 ミリ秒に設定されたタイマーのタイマー イベントを待機します。

例 4: 指定されたタイムアウト後にイベントを待機する

PS C:\> Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90

このコマンドは、次に発生し、ソース識別子が "ProcessStarted" のイベントを最大 90 秒間待機します。 指定した時間が経過すると、待機は終了します。

パラメーター

-SourceIdentifier

このコマンドレットがイベントを待機するソース識別子を指定します。 デフォルトでは、 Wait-Event は任意のイベントを待機します。

型:String
配置:0
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Timeout

Wait-Event がイベントの発生を待機する最大時間を秒単位で指定します。 既定値の -1 は無期限に待機します。 タイミングは、 Wait-Event コマンドを送信したときに開始されます。

指定した時間を超えると、イベントが発生していない場合でも、待機が終了し、コマンド プロンプトが返されます。 エラー メッセージは表示されません。

型:Int32
Aliases:TimeoutSec
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

String

出力

PSEventArgs

メモ

  • イベント、イベント サブスクリプション、およびイベント キューは、現在のセッションにのみ存在します。 現在のセッションを閉じると、イベント キューは破棄され、イベント サブスクリプションは取り消されます。