SetThreadPriority

指定されたスレッドの相対優先度を変更します。プロセスの優先度クラスとこの相対優先度から、スレッドの基本優先度が決定されます。

BOOL SetThreadPriority(
    HANDLE hThread,    // スレッドハンドル
    int    nPriority   // 相対優先度
);

KERNEL32.DLL

引数

hThread

優先度を変更するスレッドのハンドルを指定します。

Windows NT/2000/XP: このハンドルは THREAD_SET_INFORMATION アクセスを持っていなければなりません。

nPriority

相対優先度を指定します。以下の値のいずれかを指定します。

意味
-15 (THREAD_PRIORITY_IDLE)

プロセスの優先度クラスが REALTIME_PRIORITY_CLASS のとき、スレッド優先度を 16 にします。それ以外のときはスレッド優先度を 1 にします。

-2 (THREAD_PRIORITY_LOWEST)

スレッド優先度をプロセスの優先度クラスの通常の優先度より 2 低く設定します。

-1 (THREAD_PRIORITY_BELOW_NORMAL)

スレッド優先度をプロセスの優先度クラスの通常の優先度より 1 低く設定します。

0 (THREAD_PRIORITY_NORMAL)

スレッド優先度をプロセスの優先度クラスの通常の優先度に設定します。

1 (THREAD_PRIORITY_ABOVE_NORMAL)

スレッド優先度をプロセスの優先度クラスの通常の優先度より 1 高く設定します。

2 (THREAD_PRIORITY_HIGHEST)

スレッド優先度をプロセスの優先度クラスの通常の優先度より 2 高く設定します。

15 (THREAD_PRIORITY_TIME_CRITICAL)

プロセスの優先度クラスが REALTIME_PRIORITY_CLASS のとき、スレッド優先度を 31 にします。それ以外のときはスレッド優先度を 15 にします。

Windows 2000/XP: このパラメータに、相対優先度を表す -7-3 と 3 〜 6 の範囲の整数値を指定することができます。

戻り値

成功すると 0 以外の値が返ります。

失敗すると 0 が返ります。拡張エラー情報を取得するには、 GetLastError 関数を使います。

解説

それぞれのスレッドは、プロセスの優先度クラスとスレッドの相対優先度から決定される基本優先度を持ちます。システムは、どのスレッドに次の CPU のタイムスライスを与えるかを決定するのに、すべての実行可能スレッドの基本優先度を使用します。プロセスの優先度クラスは SetPriorityClass 関数で指定します。

対応情報

Windows 95 以降 / Windows NT 3.1 以降