По умолчанию процессу присваивается класс нормального уровня приори-Тета, и большинство программ остаются на этом уровне в течение всего Времени их выполнения. Несмотря на то, что ни в одном примере, описанном в этой главе, не меняется класс приоритета, для общего развития приведем краткий обзор классов приоритета. В операционной системе Windows определено 6 классов приоритета, которым соответствуют именованные константы, перечисленные далее в порядке от наивысшего приоритета к низшему: ? REALTIME_PRIORITY_CLASS ? HIGH_PRIORITY_CLASS ? ABOVE_NORMAL_PRIORITY_CLASS ? NORMAL_PRIORITY_CLASS ? BELOW_NORMAL_PRIORITY_CLASS ? IDLE_PRIORITY_CLASS Программы по умолчанию получают уровень NORMAL_PRIORITY_CLASS. Как правило, у вас нет необходимости изменять этот уровень приоритета. Изменение класса приоритета процесса может иметь негативные последствия для общей производительности компьютерной системы. Например, если вы повысите класс приоритета программы до уровня REALTIME_PRIORITY_CLASS, она будет всецело занимать процессор. Для некоторых специализированных приложений, возможно, вам придется повышать класс приоритета, но обычно в этом нет нужды. Как уже упоминалось ранее, в программах, приведенных в этой главе, класс приоритета не меняется. Если же вы все-таки захотите изменить класс приоритета программы, можно сделать это с помощью функции setpriorityciass (). Текущий класс приоритета возвращает функция GetPriorityciassO. Прототипы этих функций приведены далее. DWORD GetPriorityClass(HANDLE hApp); DWORD SetPriorityClass(HANDLE hApp, DWORD priority); Параметр hApp — дескриптор процесса. Функция GetPriorityClass () возвращает текущий класс приоритета или 0 в случае ошибки. В функции setpriorityciassо параметр priority содержит новое значение класса приоритета для процесса.
|