Поделиться через


Функция 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.

Уровень приоритета потока является одним из следующих значений.

Возвращаемый код/значение Описание
THREAD_PRIORITY_ABOVE_NORMAL
1
Приоритет на 1 пункт выше класса приоритета.
THREAD_PRIORITY_BELOW_NORMAL
-1
Приоритет на 1 пункт ниже класса приоритета.
THREAD_PRIORITY_HIGHEST
2
Приоритет на 2 пункта выше класса приоритета.
THREAD_PRIORITY_IDLE
-15
Базовый приоритет 1 для процессов IDLE_PRIORITY_CLASS, BELOW_NORMAL_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, ABOVE_NORMAL_PRIORITY_CLASS или HIGH_PRIORITY_CLASS и базовый приоритет 16 для процессов REALTIME_PRIORITY_CLASS .
THREAD_PRIORITY_LOWEST
-2
Приоритет 2 пункта ниже класса приоритета.
THREAD_PRIORITY_NORMAL
0
Обычный приоритет для класса приоритета.
THREAD_PRIORITY_TIME_CRITICAL
15
Базовый уровень приоритета 15 для процессов IDLE_PRIORITY_CLASS, BELOW_NORMAL_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, ABOVE_NORMAL_PRIORITY_CLASS или HIGH_PRIORITY_CLASS и базовый уровень приоритета 31 для процессов REALTIME_PRIORITY_CLASS .
 

Если поток имеет REALTIME_PRIORITY_CLASS базовый класс, эта функция также может возвращать одно из следующих значений: -7, -6, -5, -4, -3, 3, 4, 5 или 6. Дополнительные сведения см. в разделе Приоритеты планирования.

Комментарии

Каждый поток имеет базовый уровень приоритета, определяемый значением приоритета потока и классом приоритета его процесса. Операционная система использует базовый уровень приоритета всех исполняемых потоков, чтобы определить, какой поток получает следующий срез времени ЦП. Потоки планируются с циклическим перебором на каждом уровне приоритета, и планирование потоков на более низком уровне выполняется только при отсутствии исполняемых потоков на более высоком уровне.

Таблицу, показывающую уровни базового приоритета для каждого сочетания класса приоритета и значения приоритета потока, см. в функции SetPriorityClass .

Windows 8.1 и Windows Server 2012 R2: эта функция поддерживается для приложений Магазина Windows.

Windows Phone 8.1:Windows Phone приложения Магазина могут вызывать эту функцию, но не оказывает никакого влияния.

Требования

Требование Значение
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header processthreadsapi.h (включая Windows.h в Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Библиотека Kernel32.lib; WindowsPhoneCore.lib в Windows Phone 8.1
DLL Kernel32.dll; KernelBase.dll Windows Phone 8.1

См. также раздел

GetPriorityClass

OpenThread

Функции процессов и потоков

Приоритеты планирования

SetPriorityClass

SetThreadPriority

Потоки