Wait-Event
Czeka, aż zostanie zgłoszone określone zdarzenie, zanim przejdziesz do uruchomienia.
Składnia
Wait-Event
[[-SourceIdentifier] <String>]
[-Timeout <Int32>]
[<CommonParameters>]
Opis
Polecenie Wait-Event
cmdlet zawiesza wykonywanie skryptu lub funkcji do momentu zgłoszenia określonego zdarzenia. Wykonanie jest wznawiane po wykryciu zdarzenia. Aby anulować oczekiwanie, naciśnij CTRL+C.
Ta funkcja stanowi alternatywę dla sondowania zdarzenia. Umożliwia również określenie odpowiedzi na zdarzenie na dwa różne sposoby:
- przy użyciu parametru Action subskrypcji zdarzeń
- oczekiwanie na powrót zdarzenia, a następnie udzielenie odpowiedzi za pomocą akcji
Przykłady
Przykład 1. Oczekiwanie na następne zdarzenie
Ten przykład oczekuje na następne zdarzenie, które zostanie zgłoszone.
Wait-Event
Przykład 2. Oczekiwanie na zdarzenie z określonym identyfikatorem źródła
Ten przykład oczekuje na następne zdarzenie, które zostanie zgłoszone i ma identyfikator źródłowy ProcessStarted.
Wait-Event -SourceIdentifier "ProcessStarted"
Przykład 3. Oczekiwanie na upłynięcie zdarzenia czasomierza
W tym przykładzie Wait-Event
użyto polecenia cmdlet do oczekiwania na zdarzenie czasomierza na czasomierz ustawiony na 2000 milisekund.
$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 :
Przykład 4. Oczekiwanie na zdarzenie po upływie określonego limitu czasu
Ten przykład czeka do 90 sekund na następne zdarzenie, które zostanie zgłoszone i ma identyfikator źródłowy ProcessStarted. Jeśli określony czas wygaśnie, oczekiwanie kończy się.
Wait-Event -SourceIdentifier "ProcessStarted" -Timeout 90
Parametry
-SourceIdentifier
Określa identyfikator źródła, który to polecenie cmdlet oczekuje na zdarzenia.
Domyślnie Wait-Event
czeka na każde zdarzenie.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Timeout
Określa maksymalny czas w sekundach oczekiwania Wait-Event
na wystąpienie zdarzenia. Wartość domyślna -1 czeka na czas nieokreślony. Czas rozpoczyna się po przesłaniu Wait-Event
polecenia.
Jeśli określony czas zostanie przekroczony, oczekiwanie kończy się i zwraca wiersz polecenia, nawet jeśli zdarzenie nie zostało zgłoszone. Nie jest wyświetlany komunikat o błędzie.
Typ: | Int32 |
Aliasy: | TimeoutSec |
Position: | Named |
Domyślna wartość: | -1 |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
Dane wyjściowe
Uwagi
Zdarzenia, subskrypcje zdarzeń i kolejka zdarzeń istnieją tylko w bieżącej sesji. Jeśli zamkniesz bieżącą sesję, kolejka zdarzeń zostanie odrzucona i subskrypcja zdarzeń zostanie anulowana.