Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Приоритет ниже Normal и еще ниже


Автор: stub 4.5.2007, 09:34
вот смотрите. мне надо понизить приоритет собственной проги (она там  запускает цикл бесконечный пока юзер не прервет кнопкой) и вот чтобы не занимало много проц. времени я везде внутри цикла расставил Sleep(1);(отдача времени винде) и Application.ProcessMessages;(обработка собственной очереди - чтобы кнопки кликались и проч.) и вот еще хочу приоритет понизить а их всего 4:

     0: Res:=true;
      1: Res:=SetPriorityClass(ProcessHandle, IDLE_PRIORITY_CLASS);
      2: Res:=SetPriorityClass(ProcessHandle, NORMAL_PRIORITY_CLASS);
      3: Res:=SetPriorityClass(ProcessHandle, HIGH_PRIORITY_CLASS);
      4: Res:=SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS);
хотя в диспетчере задач можно выбрать BelowNormal, и Low 

может я что то не то нарыл? 

*спасибо. у меня д6. в ней не прописаны новинки приоритетов как константы. smile
 делаем ручками.

Автор: Rennigth 4.5.2007, 09:47
stub, 
Ню для 2000 и XP cамый маленький это:
Код

IDLE_PRIORITY_CLASS

То о чем ты говоришь (ABOVE и BELOW) вот тебе константы:
Код

  ABOVE_NORMAL_PRIORITY_CLASS = $00008000;
  BELOW_NORMAL_PRIORITY_CLASS = $00004000;

но они выше по приоритету идла.

Добавлено @ 09:53
Для висты еще появился BackGround приоритет:
Код

PROCESS_MODE_BACKGROUND_BEGIN = $00100000;
PROCESS_MODE_BACKGROUND_END = $00200000;

Об этом вся инфа http://msdn2.microsoft.com/en-us/library/ms686219.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)