Функция
SetPriorityClassФункция
SetPriorityClass устанавливает класс приоритета для заданного процесса. Это значение вместе со значением приоритета каждого потока процесса обуславливает базовый уровень приоритета каждого потока.Синтаксис
BOOL SetPriorityClass(
); |
Параметры
hProcess
[in] Дескриптор процесса.
Windows NT /2000/XP:
дескриптор должен иметь право доступа PROCESS_SET_INFORMATION. Для получения дополнительной информации, см. Защита процесса и права доступа.dwPriorityClass
[in] Класс приоритета для процесса. Этот параметр может быть одним из нижеследующих значений:
Приоритет |
Предназначение |
ABOVE_NORMAL_PRIORITY_CLASS |
Windows 2000 /XP: Процесс, который имеет приоритет выше NORMAL_PRIORITY_CLASS, но ниже HIGH_PRIORITY_CLASS. |
BELOW_NORMAL_PRIORITY_CLASS |
Windows 2000 /XP: Процесс, который имеет приоритет выше IDLE_PRIORITY_CLASS, но ниже NORMAL_PRIORITY_CLASS. |
HIGH_PRIORITY_CLASS |
Обозначает процесс, выполняющий критические по времени задачи, которые должны быть выполнены немедленно для того, чтобы запустить их правильно. Потоки процесса высокоприоритетного класса выгружают потоки процессов нормального класса или класса приоритета в бездействующей системе. Пример - Список задач Windows, который должен быстро отреагировать, когда вызывается пользователем, независимо от загрузки на операционной системе. Высокоприоритетный класс используйте крайне осторожно, потому что программа высокоприоритетного класса, ограниченная возможностями процессора, может использовать почти все циклы доступа к нему. |
IDLE_PRIORITY_CLASS |
Обозначает процесс, потоки которого запускаются только тогда, когда система неактивна и выгружается потоками любого процесса, запущенного с более высоким классом приоритета. Пример - программа-заставка (хранитель экрана). Класс приоритета в бездействующей системе наследуется дочерними процессами. |
NORMAL_PRIORITY_CLASS |
Процесс, который не нуждается в специальных мерах диспетчеризации. |
REALTIME_PRIORITY_CLASS |
Процесс, который имеет самый высокий возможный приоритет. Потоки этого процесса выгружают потоки всех других процессов, включая процессы операционной системы, выполняющие важные задачи. Например, процесс реального времени, который работает больше, чем очень краткий промежуток времени, может стать причиной того, что дисковые КЭШи не стану сбрасывать на диск или причиной того, что мышь будет не реагирующей. |
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - не ноль.
Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получать дополнительные данные об ошибке, вызовите
GetLastError.Замечания
Каждый поток имеет базовый уровень приоритета, обуславливающийся значением приоритета потока и классом приоритета его процесса. Система использует базовый уровень приоритета всех выполняемых потоков, чтобы установить, который поток получает следующий квант процессорного времени. Функция
SetThreadPriority дает возможность регулировки базового уровня приоритета потока относительно класса приоритета его процесса. Для получения дополнительной информации, см. Приоритеты в обслуживнии.Смотри также
Краткий обзор Процессы и потоки, Функции, используемые процессами и потоками, CreateProcess, CreateThread, GetPriorityClass, GetThreadPriority, SetThreadPriority
Размещение и совместимость SetPriorityClass |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Kernel32.lib |
Заголовочный файл |
|
- объявлено в |
Winbase.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |