2012-12-18 42 views
3

有確實存在的Win32 API方法來獲取線程和進程的基本優先級:如何在Windows NT中獲得線程的動態優先級?

DWORD WINAPI GetPriorityClass( HANDLE hProcess );

&

INT WINAPI GetThreadPriority( HANDLE hThread );

但我該如何獲得動態優先級,因爲系統可能會提高和降低動態優先級?

+0

你的意思是「內核總是改變線程的優先級」? – NPE

+0

對不起,我修改了我的表情。 – seanses

+0

我不確定這是否會對您有所幫助,但是我注意到了USPTO的一項專利:_線程的動態優先級是通過調整線程執行動態的啓發式度量來確定的,並使用根據OS確定的與優先級相關的縮放函數線程的優先級._。有關[鏈接]的更多信息(http://www.google.com/patents/US20010056456) – stamhaney

回答

0

您可以使用GetPriorityClassGetThreadPriority獲得靜態優先級。 MSDN有一篇關於Scheduling Priorities的文章,其中有一張表給你一個概述哪一個進程的優先級和線程優先級導致哪個基本優先級。

我相信你指的是priority boosts!?有一些功能GetProcessPriorityBoostGetThreadPriorityBoost,它們會告訴BOOL是否爲進程/線程啓用或禁用了優先級提升。但似乎沒有一個官方API來檢索動態優先級(boost)。