Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР №6.doc
Скачиваний:
9
Добавлен:
06.05.2019
Размер:
157.18 Кб
Скачать

6.2.5. Изменение базового приоритета процесса

Изменить базовый приоритет процесса можно с помощью свойства PriorityClass типа System::Diagnostics::Process. Но приоритет может меняться по базовым уровням. Эти уровни предоставлены в перечислении ProcessPriorityClass.

В таблице 3 представлены члены этого перечисления:

Таблица 3

Имя члена перечисления

Описание

Normal

Указывает, что у процесса нет особых запланированных потребностей.

Idle

Указывает, что потоки этого процесса выполняются, только когда система не занята. Примером может служить программа-заставка. Потоки данного процесса выгружаются потоками любых процессов с более высоким приоритетом.

High

Указывает, что процесс выполняет срочные задачи, которые должны быть выполнены немедленно, например диалог Task List, который должен быстро отвечать при вызове пользователя, независимо от загрузки операционной системы. Потоки процесса выгружают потоки процессов с нормальными или низкими приоритетами.

RealTime

Указывает, что процесс обладает максимально высоким приоритетом.

BelowNormal

Указывает, что значение приоритета процесса находится между Idle и Normal.

AboveNormal

Указывает, что значение приоритета процесса находится между Normal и High.

Изменить какой-либо выбранный по щелчку левой кнопкой мыши приоритет можно таким образом:

ProcessPriorityClass Idle = ProcessPriorityClass::Idle;

ProcessPriorityClass BelowNormal = ProcessPriorityClass::BelowNormal;

ProcessPriorityClass Normal = ProcessPriorityClass::Normal;

ProcessPriorityClass AboveNormal = ProcessPriorityClass::AboveNormal;

ProcessPriorityClass High = ProcessPriorityClass::High;

ProcessPriorityClass RealTime = ProcessPriorityClass::RealTime;

for(int i = 0; i< SICount; i++)

{ prstr=SI[i]Text;

array<Process^>^Pk1=Process::GetProcessesByName(prstr);

for(int i=0; i<Pk1Length; i++)

{ Pk1[i]  PriorityClass = Idle;}

}

Здесь сначала объявляются и инициализируются переменные типа перечисление (по сути константы), которые затем назначаются в качестве значения свойству PriorityClass.

6.3.Задание на лабораторную работу

В интегрированной среде разработки Visual Studio 2008 написать программу, которая:

  • Выводит в табличной форме основную информацию (имя, идентификатор, базовый приоритет, количество потоков, дата запуска, класс приоритета, название главного окна процесса) обо всех запущенных в системе процессах. Заголовок и шапка таблицы должны формироваться при создании формы. Вывод текущей информации должен осуществляться по нажатию соответствующей кнопки.

  • Выводит информацию о количестве запущенных процессов.

  • Предоставляет возможность изменения базового приоритета выбранного пользователем процесса. Автоматически обновляет данные в таблице запущенных процессов после выполнения изменения приоритета.

Для формирования таблицы следует использовать компонент ListView, который находится на панели элементов Toolbox. Формат итоговой таблицы представлен в таблице 4.

Таблица 4

Имя процесса

Идентификатор процесса

Приоритет процесса

Количество потоков процесса

Дата запуска

Класс приоритета

Название главного окна процесса

В остальном организация интерфейса произвольна.