共用方式為


優先順序提升

每個線程都有 動態優先順序。 這是排程器用來判斷要執行的線程的優先順序。 一開始,線程的動態優先順序與其基底優先順序相同。 系統可以提升並降低動態優先順序,以確保其回應性,而且處理器時間不會耗盡任何線程。 系統不會提升具有 16 到 31 之間基底優先順序層級的線程優先順序。 只有基底優先順序介於 0 到 15 之間的線程會收到動態優先順序提升。

系統會提升線程的動態優先順序,以增強其回應性,如下所示。

  • 當使用NORMAL_PRIORITY_CLASS的進程帶到前景時,排程器會提升與前景窗口相關聯之進程的優先順序類別,使其大於或等於任何背景進程的優先順序類別。 當進程不再在前景時,優先順序類別會傳回其原始設定。

  • 當視窗收到輸入,例如定時器訊息、滑鼠訊息或鍵盤輸入時,排程器會提升擁有視窗之線程的優先順序。

  • 當滿足封鎖線程的等候條件時,排程器會提升線程的優先順序。 例如,當與磁碟或鍵盤 I/O 相關聯的等候作業完成時,線程會收到優先順序提升。

    您可以呼叫 setProcessPriorityBoostSetProcessPriorityBoost 或 SetThreadPriorityBoost 函式來停用優先順序提升功能。 若要判斷此功能是否已停用,請呼叫 GetProcessPriorityBoostGetThreadPriorityBoost 函式。

在提高線程的動態優先順序之後,排程器會在每次線程完成時間配量時,將優先順序減少一個層級,直到線程舍回其基底優先順序為止。 線程的動態優先順序絕不小於其基底優先順序。