Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ПРиоритет программы


Gnoll ©   (2006-07-28 23:37:00) 

Как поставить максимальный приоритет для поей программы?


Handle   (2006-07-29 12:56:00) [1]


> Sergey Masloff   (29.07.06 12:45) [5]


Понятно.


Sergey Masloff   (2006-07-29 12:45:00) [2]

Да дело не в том. Просто система резко тормозить станет на мышь и на кнопки не реагировать и другие приятности. Такой приоритет нужно ставить дополнительным тредам и на короткие промежутки времени.


Handle   (2006-07-29 11:34:00) [3]


> Sergey Masloff   (29.07.06 10:25) [3]
> хм... вот для нити в которой пользовательский интерфейс
> выполняется не нужно так делать.


procedure TForm1.ButtonClick(Sender: TObject);
begin
var
ProcessID: DWORD;
ProcessHandle: THandle;
ThreadHandle: THandle;
begin
ProcessID := GetCurrentProcessID;
ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION,
  false, ProcessID);
SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS);
ThreadHandle := GetCurrentThread;
SetThreadPriority(ThreadHandle, THREAD_PRIORITY_ABOVE_NORMAL);
end;


А так?


Sergey Masloff   (2006-07-29 10:25:00) [4]

Handle   (29.07.06 10:08) [2]
> TForm1.FormCreate
REALTIME_PRIORITY_CLASS, THREAD_PRIORITY_ABOVE_NORMAL
хм... вот для нити в которой пользовательский интерфейс выполняется не нужно так делать.


Handle   (2006-07-29 10:08:00) [5]

procedure TForm1.FormCreate(Sender: TObject);
var
 ProcessID: DWORD;
 ProcessHandle: THandle;
 ThreadHandle: THandle;
begin
 ProcessID := GetCurrentProcessID;
 ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION,
   false, ProcessID);
 SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS);
 ThreadHandle := GetCurrentThread;
 SetThreadPriority(ThreadHandle, THREAD_PRIORITY_ABOVE_NORMAL);
end;


Sergey Masloff   (2006-07-28 23:44:00) [6]

Зачем? А вообще см.
SetThreadPriority() - для потока
SetPriorityClass() - для процесса


Наверх

Титульная страница Поиск, карта сайта Написать письмо