Warunki bezczynności zadania
Zadanie można obsłużyć na kilka sposobów, gdy komputer przechodzi w stan bezczynności. Obejmuje to definiowanie bezczynnego wyzwalacza lub ustawianie warunków bezczynności dla momentu uruchomienia zadania.
Wykrywanie stanu bezczynności
W systemie Windows 7 harmonogram zadań sprawdza, czy komputer jest w stanie bezczynności co 15 minut. Harmonogram zadań sprawdza stan bezczynności przy użyciu dwóch kryteriów: brak użytkownika i brak użycia zasobów. Użytkownik jest uważany za nieobecny, jeśli w tym okresie nie ma żadnych danych wejściowych klawiatury ani myszy. Komputer jest uważany za bezczynny, jeśli wszystkie procesory i wszystkie dyski były bezczynne przez ponad 90% ostatniego interwału wykrywania. (Wyjątkiem jest dowolna aplikacja typu prezentacji, która ustawia flagę ES_DISPLAY_REQUIRED. Ta flaga wymusza, aby harmonogram zadań nie uwzględniał systemu jako bezczynności, niezależnie od aktywności użytkownika lub zużycia zasobów.
W systemie Windows 7 harmonogram zadań traktuje procesor jako bezczynny nawet wtedy, gdy wątki o niskim priorytcie (priorytet wątku < normalne) są wykonywane.
W systemie Windows 7, gdy harmonogram zadań wykryje, że komputer jest bezczynny, usługa czeka tylko na dane wejściowe użytkownika, aby oznaczyć koniec stanu bezczynności.
W systemie Windows 8 harmonogram zadań wykonuje te same ogólne kontrole braku użytkownika i zużycia zasobów. Jednak harmonogram zadań opiera się na podsystemie zasilania systemu operacyjnego w celu wykrywania obecności użytkownika. Domyślnie użytkownik jest uważany za nieobecny po czterech minutach braku klawiatury ani danych wejściowych myszy. Czas weryfikacji zużycia zasobów jest skracany do 10-minutowych interwałów, gdy użytkownik jest obecny. Gdy użytkownik jest niedostępny, czas weryfikacji jest skracany do 30 sekund interwałów. Harmonogram zadań sprawdza użycie dodatkowych zasobów pod kątem następujących zdarzeń:
- Stan obecności użytkownika został zmieniony
- Źródło zasilania ac/DC uległo zmianie
- Poziom baterii został zmieniony (tylko w przypadku baterii)
W przypadku wystąpienia któregokolwiek z powyższych zdarzeń harmonogram zadań testuje komputer pod kątem bezczynności od czasu ostatniej weryfikacji. W praktyce oznacza to, że harmonogram zadań może zadeklarować system jako bezczynny natychmiast po wykryciu braku użytkownika, jeśli inne warunki zostały spełnione od czasu ostatniej weryfikacji.
W systemie Windows 8 progi procesora CPU i operacji we/wy są ustawione na 80%.
Podczas wykrywania stanu bezczynności w systemie Windows 8 Server harmonogram zadań nie bierze pod uwagę obecności użytkownika ani braku. Aby oznaczyć koniec stanu bezczynności, harmonogram zadań zmienia zużycie zasobów raz na 90 minut.
Definiowanie bezczynnego wyzwalacza
Zadanie można uruchomić, gdy komputer przechodzi w stan bezczynności, definiując wyzwalacz bezczynności.
Wyzwalacz bezczynności wyzwoli akcję zadania tylko wtedy, gdy komputer przejdzie w stan bezczynności po granicy początkowej wyzwalacza.
Aplikacja może zdefiniować wyzwalacz bezczynności przy użyciu interfejsuIIdleTrigger.
W przypadku odczytywania lub zapisywania kodu XML wyzwalacz bezczynności jest określony przez element IdleTrigger schematu harmonogramu zadań.
Ustawienia zadania dla warunków bezczynności
Ustawienia zadania mogą służyć do definiowania sposobu, w jaki harmonogram zadań obsługuje zadanie, gdy komputer przechodzi w stan bezczynności.
Na poniższych ilustracjach przedstawiono trzy możliwe osie czasu pokazujące, jak te różne bezczynne warunki odnoszą się do siebie nawzajem. Należy pamiętać, że ilustracje rozpoczynają się po aktywowaniu wyzwalacza zadania lub uruchomieniu zadania na żądanie (bez żądania ignorować istniejące ograniczenia zadania).
Nuta
Ustawienia Duration i WaitTimeout są przestarzałe. Są one nadal obecne w interfejsie użytkownika harmonogramu zadań, a ich metody interfejsu mogą nadal zwracać prawidłowe wartości, ale nie są już używane.
Oś czasu
Poniższa lista zawiera opis warunków bezczynności.
- Początek bezczynności: czas, kiedy komputer przechodzi w stan bezczynności.
- Koniec bezczynności: czas przejścia komputera z stanu bezczynności. Należy pamiętać, że czas, przez jaki komputer znajduje się w stanie bezczynności, jest niezależny od czasu bezczynności opisanego wcześniej.
Czas oczekiwania bezczynności i czas bezczynności są przestarzałe.
- Oczekiwanie bezczynności: czas oczekiwania harmonogramu zadań na stan bezczynności po aktywowaniu wyzwalacza zadania lub po uruchomieniu zadania na żądanie.
- Czas bezczynności: czas bezczynności komputera przed uruchomieniem zadania.
Jeśli na przykład zadanie jest ustawione tak, aby było uruchamiane tylko wtedy, gdy komputer jest bezczynny przez 30 minut, a zadanie czeka na bezczynność komputera przez 10 minut, zadanie zostanie uruchomione w ciągu 5 minut tylko wtedy, gdy komputer był bezczynny przez 25 minut przed czasem aktywowania wyzwalacza. Zadanie nie zostanie uruchomione, jeśli komputer przejdzie w stan bezczynności 5 minut po aktywowaniu wyzwalacza.
Domyślnie właściwość DisallowStartIfOnBatter ies jest ustawiona na wartość true, co oznacza, że usługa Harmonogram zadań nie będzie uruchamiać zadań wyzwalanych przez wyzwalacz bezczynności (lub wyzwalacz z warunkami bezczynności), gdy komputer jest uruchomiony na zasilaniu baterii. To zachowanie można zmienić, ustawiając właściwość DisallowStartIfOnBatteries na false.
Jeśli zadanie jest wyzwalane przez wyzwalacz bezczynności, właściwość WaitTimeout interfejsu IIdleSettings (IdleSettings do obsługi skryptów) jest ignorowana.
Aplikacje mogą kontrolować warunki bezczynności, ustawiając właściwości w interfejsach IIdleSettings i IIdleTrigger.
W przypadku odczytywania lub zapisywania kodu XML te warunki są określone w Settings elementu schematu harmonogramu zadań.
Stan bezczynności roweru
Jeśli komputer jest w stanie bezczynności i poza nieczynnością, możesz zakończyć i ponownie uruchomić zadanie przy użyciu następujących warunków bezczynności. Aby zakończyć i ponownie uruchomić zadanie, właściwości i elementy muszą być ustawione na true:
- Aby zakończyć zadanie po zakończeniu warunku bezczynności, ustaw właściwość StopOnIdleEnd lub element StopOnIdleEnd wartość True.
- Aby ponownie uruchomić zadanie po ponownym uruchomieniu komputera w stanie bezczynności, ustaw właściwość RestartOnIdle lub właściwość RestartOnIdle wartość True.