次の方法で共有


Wait-Event

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

構文

Default (既定)

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
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:0
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-Timeout

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

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

パラメーターのプロパティ

型:Int32
規定値:-1
ワイルドカードのサポート:False
DontShow:False
Aliases:TimeoutSec

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

CommonParameters

このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。

入力

String

出力

PSEventArgs

メモ

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