![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ПРиоритет программы
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() - для процесса