共用方式為


工作閑置條件

當計算機進入閑置狀態時,可以透過數種方式來處理工作。 這包括定義閑置觸發程式,或設定工作啟動時的閑置條件。

偵測閑置狀態

在 Windows 7 中,工作排程器會每隔 15 分鐘確認計算機處於閑置狀態。 工作排程器會使用兩個準則來檢查閑置狀態:使用者缺席,以及資源耗用量不足。 如果使用者在這段時間內沒有鍵盤或滑鼠輸入,則會被視為不存在。 如果所有處理器和所有磁碟在上次偵測間隔的 90 個以上% 閑置,計算機就會被視為閑置。 (例外狀況是設定ES_DISPLAY_REQUIRED旗標的任何簡報類型應用程式。不論用戶活動或資源耗用量為何,此旗標會強制工作排程不要將系統視為閑置。

在 Windows 7 中,工作排程器會將處理器視為閑置,即使低優先順序線程(線程優先順序 < 正常)執行也一樣。

在 Windows 7 中,當工作排程器偵測到計算機處於閑置狀態時,服務只會等候使用者輸入標示閑置狀態的結尾。

在 Windows 8 中,工作排程器會執行相同的一般使用者缺席和資源耗用量檢查。 不過,工作排程器依賴作系統電源子系統來偵測使用者是否存在。 根據預設,在四分鐘沒有鍵盤或滑鼠輸入之後,使用者就會被視為缺席。 當使用者存在時,資源耗用量驗證時間會縮短為10分鐘間隔。 當用戶離開時,驗證時間會縮短為30秒間隔。 工作排程器會針對下列事件進行額外的資源耗用量檢查:

  • 使用者目前狀態已變更
  • AC/DC 電源已變更
  • 電池電量已變更(只有在電池時)

當上述任何事件發生時,工作排程器會測試計算機自上次驗證時間以來的閑置狀態。 實際上,這表示如果上次驗證時間之後符合其他條件,工作排程器可能會立即將系統宣告為閑置狀態。

在 Windows 8 中,CPU 和 IO 閾值會設定為 80%。

在 Windows 8 Server 中偵測閑置狀態時,工作排程器不會將使用者存在或缺席納入考慮。 若要標示閑置狀態的結束,工作排程器會在 90 分鐘內修改資源耗用量一次。

定義閑置觸發程式

當計算機藉由定義閑置觸發程式進入閑置狀態時,可以啟動工作。

如果計算機在觸發程式的開始界限之後進入閑置狀態,閑置觸發程式只會觸發工作動作。

應用程式可以使用 IIdleTrigger 介面來定義閑置觸發程式。

如果讀取或寫入 XML,則閒置觸發程式是由工作排程器架構的 IdleTrigger 元素所指定。

閑置條件的工作設定

工作設定可用來定義當計算機進入閑置狀態時,工作排程器如何處理工作。

下圖提供三個可能的時程表,顯示這些不同閑置條件彼此的關係。 請注意,圖例會在啟動工作觸發程式時啟動,或工作視需要啟動時啟動(不需要要求 忽略現有的工作條件約束)。

注意

DurationWaitTimeout 設定已被取代。 它們仍然存在於工作排程器使用者介面中,而且其介面方法可能仍會傳回有效的值,但不再使用它們。

閑置條件時間軸

下列清單描述閑置條件。

  • 閑置啟動:計算機進入閑置狀態的時間。
  • 閑置結束:計算機從閑置狀態轉換的時間。 請注意,計算機處於閑置狀態的時間量與先前描述的閑置持續時間時間無關。

閑置等候和閑置持續時間已被取代。

  • 閑置等候:工作排程器在啟動工作觸發程式或視需要啟動工作之後,等待閑置狀態發生的時間量。
  • 閑置持續時間:您希望計算機在啟動工作之前已閑置的時間量。

例如,如果工作設定為只有在計算機閑置 30 分鐘時才會啟動,而工作會等候計算機閑置 10 分鐘,則只有在計算機在啟動觸發程式之前已閑置 25 分鐘時,才會在 5 分鐘內啟動工作。 如果計算機在啟動觸發程式 5 分鐘後進入閑置狀態,工作將不會啟動。

根據預設,工作 DisallowStartIfOnBatteries 屬性設定為 true,這表示當電腦在電池電源上執行時,工作排程器服務不會執行由閑置觸發程式觸發的工作(或具有閑置條件的觸發程式)。 您可以將 DisallowStartIfOnBatteries 屬性設定為 false,來變更此行為。

如果工作是由閑置觸發程式觸發,則會忽略 IIdleSettings 介面的 WaitTimeout 属性(Scripting 的 IdleSettings)。

應用程式可以在 IIdleSettingsIIdleTrigger 介面中設定屬性,來控制閑置條件。

如果讀取或寫入 XML,這些條件會在工作排程器架構的 Settings 元素中指定。

迴圈閑置條件

如果計算機正在迴圈進出閑置狀態,您可以使用下列閑置條件終止並重新啟動工作。 若要終止並重新啟動工作,屬性和元素都必須設定為 True: