GetThreadPriority 関数 (processthreadsapi.h)
指定したスレッドの優先度値を取得します。 この値は、スレッドのプロセスの優先度クラスと共に、スレッドの基本優先度レベルを決定します。
構文
int GetThreadPriority(
[in] HANDLE hThread
);
パラメーター
[in] hThread
スレッドへのハンドル。
ハンドルには、THREAD_QUERY_INFORMATIONまたは THREAD_QUERY_LIMITED_INFORMATION アクセス権 が 必要です。 詳細については、「 スレッド セキュリティとアクセス権」を参照してください。
Windows Server 2003: ハンドルには、 THREAD_QUERY_INFORMATION アクセス権が必要です。
戻り値
関数が成功した場合、戻り値はスレッドの優先度レベルです。
関数が失敗した場合、戻り値は THREAD_PRIORITY_ERROR_RETURN。 詳細なエラー情報を得るには、GetLastError を呼び出します。
Windows Phone 8.1: この関数は常にTHREAD_PRIORITY_NORMALを返します。
スレッドの優先度レベルは、次のいずれかの値です。
リターン コード/値 | Description |
---|---|
|
優先度クラスの 1 ポイント上の優先度。 |
|
優先度クラスより 1 ポイント下の優先度。 |
|
優先度クラスより 2 ポイント上の優先度。 |
|
IDLE_PRIORITY_CLASS、BELOW_NORMAL_PRIORITY_CLASS、NORMAL_PRIORITY_CLASS、ABOVE_NORMAL_PRIORITY_CLASS、またはHIGH_PRIORITY_CLASSプロセスの場合は基本優先度 1、REALTIME_PRIORITY_CLASS プロセスの場合は基本優先度は 16 です。 |
|
優先度クラスより 2 ポイント下の優先度。 |
|
優先度クラスの通常の優先度。 |
|
IDLE_PRIORITY_CLASS、BELOW_NORMAL_PRIORITY_CLASS、NORMAL_PRIORITY_CLASS、ABOVE_NORMAL_PRIORITY_CLASS、またはHIGH_PRIORITY_CLASSプロセスの場合は基本優先度レベル 15、REALTIME_PRIORITY_CLASS プロセスの場合は基本優先度レベル 31。 |
スレッドに REALTIME_PRIORITY_CLASS 基本クラスがある場合、この関数は 、-7、-6、-5、-4、-3、3、4、5、または 6 のいずれかの値を返すこともできます。 詳細については、「 スケジュールの優先順位」を参照してください。
注釈
すべてのスレッドには、スレッドの優先度値とそのプロセスの優先度クラスによって決まる基本優先度レベルがあります。 オペレーティング システムは、すべての実行可能スレッドの基本優先度レベルを使用して、CPU 時間の次のスライスを取得するスレッドを決定します。 スレッドは各優先度レベルでラウンドロビン方式でスケジュールされ、より高いレベルの実行可能スレッドがない場合にのみ、より低いレベルでスレッドのスケジュールが行われます。
優先度クラスとスレッド優先度値の各組み合わせの基本優先度レベルを示すテーブルについては、 SetPriorityClass 関数を参照してください。
Windows 8.1と R2 Windows Server 2012: この関数は Windows ストア アプリでサポートされています。
Windows Phone 8.1:Windows Phone ストア アプリはこの関数を呼び出すことができますが、効果はありません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | processthreadsapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む) |
Library | Kernel32.lib;Windows Phone 8.1 の WindowsPhoneCore.lib |
[DLL] | Kernel32.dll;Windows Phone 8.1 での KernelBase.dll |