工作閒置條件
當電腦進入閒置狀態時,可以透過數種方式處理工作。 這包括定義閒置觸發程式,或設定工作啟動時的閒置條件。
偵測閒置狀態
在 Windows 7 中,工作排程器會每隔 15 分鐘確認電腦處於閒置狀態。 工作排程器會使用兩個準則檢查閒置狀態:使用者缺少,以及資源耗用量不足。 如果使用者在此期間沒有鍵盤或滑鼠輸入,則會被視為不存在。 如果所有處理器和所有磁片都處於閒置狀態,則電腦會被視為閒置,超過最後一個偵測間隔的 90%。 (設定ES_DISPLAY_REQUIRED旗標的任何簡報類型應用程式都會有例外狀況。不論使用者活動或資源耗用量為何,此旗標會強制工作排程不要將系統視為閒置。)
在 Windows 7 中,工作排程器會將處理器視為閒置,即使低優先順序執行緒 (執行緒優先順序 < 正常執行) 也一樣。
在 Windows 7 中,當工作排程器偵測到電腦處於閒置狀態時,服務只會等候使用者輸入標示閒置狀態的結束。
在Windows 8中,工作排程器會執行相同的一般使用者缺少和資源耗用量檢查。 不過,工作排程器依賴作業系統電源子系統來偵測使用者是否存在。 根據預設,使用者會在沒有鍵盤或滑鼠輸入的四分鐘後被視為不存在。 當使用者存在時,資源耗用量驗證時間會縮短為 10 分鐘。 當使用者離開時,驗證時間會縮短為 30 秒間隔。 工作排程器會針對下列事件進行額外的資源耗用量檢查:
- 使用者目前狀態已變更
- AC/DC 電源已變更
- 只有在電池) 時,電池計量才會變更 (
當上述任何事件發生時,工作排程器會測試電腦自上次驗證時間以來的閒置性。 實際上,這表示如果上次驗證時間以來已符合其他條件,工作排程器可能會在偵測到使用者不存在之後立即將系統宣告為閒置。
在Windows 8中,CPU 和 IO 閾值會設定為 80%。
在Windows 8伺服器中偵測閒置狀態時,工作排程器不會考慮使用者存在或缺少狀態。 若要標示閒置狀態的結束,工作排程器會在 90 分鐘內修改資源耗用量一次。
定義閒置觸發程式
當電腦藉由定義閒置觸發程式進入閒置狀態時,可以啟動工作。
如果電腦在觸發程式的開始界限之後進入閒置狀態,閒置觸發程式只會觸發工作動作。
應用程式可以使用 IIdleTrigger 介面來定義閒置觸發程式。
如果讀取或寫入 XML,閒置觸發程式是由 Task Scheduler 架構的 IdleTrigger 元素所指定。
閒置條件的工作設定
工作設定可用來定義當電腦進入閒置狀態時,工作排程器如何處理工作。
下圖提供三個可能的時間軸,顯示這些不同閒置條件彼此的關聯性。 請注意,圖例會在啟動工作觸發程式時啟動,或當工作視需要啟動時 (,而不要求 忽略現有的工作條件約束) 。
注意
Duration和WaitTimeout設定已被取代。 它們仍存在於工作排程器使用者介面中,而且其介面方法仍可能會傳回有效值,但不再使用。
下列清單描述閒置條件。
- 閒置啟動:電腦進入閒置狀態的時間。
- 閒置結束:電腦從閒置狀態轉換的時間。 請注意,電腦處於閒置狀態的時間量,與先前所述的閒置持續時間時間無關。
閒置等候和閒置持續時間已被取代。
- 閒置等候:工作排程器在啟動工作觸發程式或視需要啟動工作之後,等候閒置狀態發生的時間量。
- 閒置持續時間:啟動工作之前,您希望電腦已閒置的時間量。
例如,如果工作設定為只有在電腦閒置 30 分鐘時才會啟動,而工作會等候電腦閒置 10 分鐘,則只有在電腦在啟動觸發程式前 25 分鐘才會啟動工作。 如果電腦在啟動觸發程式之後 5 分鐘進入閒置狀態,工作將不會啟動。
根據預設, 工作 DisallowStartIfOnBatteries 屬性會設定為 true,這表示當電腦在電池電源上執行時,工作排程器服務不會執行閒置觸發程式所觸發的工作 (或處於閒置) 條件的觸發程式。 您可以將 DisallowStartIfOnBatteries 屬性設定為 false 來變更此行為。
如果工作是由閒置觸發程式觸發,則會忽略IIdleSettings介面的WaitTimeout屬性, (IdleSettings來編寫腳本) 。
應用程式可以藉由在 IIdleSettings 和 IIdleTrigger 介面中設定屬性來控制閒置條件。
如果讀取或寫入 XML,則會在工作排程器架構的 Settings 元素中指定這些條件。
迴圈閒置條件
如果電腦在閒置狀態中迴圈,您可以使用下列閒置條件終止並重新啟動工作。 若要終止並重新啟動工作,屬性和元素都必須設定為 True:
- 若要在閒置條件結束時終止工作,請將 StopOnIdleEnd 屬性或 StopOnIdleEnd 元素設定為 True。
- 若要在電腦再次進入閒置條件時重新開機工作,請將RestartOnIdle 屬性或 RestartOnIdle元素設定為 True。