Wait-Event
실행을 계속하기 전에 특정 이벤트가 발생할 때까지 기다립니다.
구문
Wait-Event
[[-SourceIdentifier] <String>]
[-Timeout <Int32>]
[<CommonParameters>]
Description
cmdlet은 Wait-Event
특정 이벤트가 발생할 때까지 스크립트 또는 함수의 실행을 일시 중단합니다. 이벤트가 감지되면 실행이 다시 시작됩니다. 대기를 취소하려면 Ctrl+C를 누릅니다.
이벤트를 폴링하는 대신 이 기능을 사용할 수 있습니다. 또한 다음과 같은 두 가지 방법으로 이벤트에 대한 응답을 확인할 수 있습니다.
- 이벤트 구독의 Action 매개 변수 사용
- 이벤트가 반환된 후 작업으로 응답할 때까지 대기
예제
예제 1: 다음 이벤트 대기
이 예제에서는 다음 이벤트가 발생할 때까지 기다립니다.
Wait-Event
예제 2: 지정된 원본 식별자가 있는 이벤트를 기다립니다.
이 예제에서는 다음 이벤트가 발생하고 ProcessStarted의 원본 식별자가 있는 이벤트를 기다립니다.
Wait-Event -SourceIdentifier "ProcessStarted"
예제 3: 타이머 경과 이벤트 대기
이 예제에서는 cmdlet을 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
이 cmdlet이 이벤트를 기다리는 원본 식별자를 지정합니다.
기본적으로 Wait-Event
모든 이벤트를 기다립니다.
형식: | String |
Position: | 0 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Timeout
이벤트가 발생할 때까지 대기하는 Wait-Event
최대 시간(초)을 지정합니다. 기본값인 -1은 무기한 대기합니다. 명령을 제출할 때 타이밍이 시작됩니다 Wait-Event
.
지정한 시간을 초과하면 이벤트가 발생하지 않았어도 대기가 종료되고 명령 프롬프트가 반환됩니다. 오류 메시지가 표시되지 않습니다.
형식: | Int32 |
별칭: | TimeoutSec |
Position: | Named |
Default value: | -1 |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
출력
참고
이벤트, 이벤트 구독 및 이벤트 큐는 현재 세션에만 존재합니다. 현재 세션을 닫으면 이벤트 큐가 삭제되고 이벤트 구독이 취소됩니다.
관련 링크
PowerShell