| Zmiana priorytetu naszej aplikacji w systemie |
|
|
| Napisał: Berl | ||
| wtorek, 28 marzec 2006 | ||
|
Delphi umożliwia zmianę priorytetu naszej aplikacji w systemie. Można tego dokonać, używając funkcji SetPriorityClass oraz SetThreadPriority. Mając uchwyt do głównego wątku naszej aplikacji, możemy ustawić jeden z priorytetów tego wątku. Poniżej są wymienione poziomy wątków, w kolejności od najniższego do najwyższego : THREAD_PRIORITY_IDLE THREAD_PRIORITY_LOWEST THREAD_PRIORITY_BELOW_NORMAL THREAD_PRIORITY_NORMAL THREAD_PRIORITY_ABOVE_NORMAL THREAD_PRIORITY_HIGHEST THREAD_PRIORITY_TIME_CRITICAL Natomiast dostępne poziomy ważności procesów (od najniższego do najwyższego) : IDLE_PRIORITY_CLASS NORMAL_PRIORITY_CLASS HIGH_PRIORITY_CLASS REALTIME_PRIORITY_CLASS Aby ustawić najwyższy priorytet naszej aplikacji w systemie, możemy uzyć następującej procedury : procedure UstawPriorytet(StopienProcesu: dword; StopienWatku : integer); var ProcessID : DWORD; ProcessHandle : THandle; ThreadHandle : THandle; begin ProcessID := GetCurrentProcessID; ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION, false, ProcessID); SetPriorityClass(ProcessHandle, StopienProcesu); ThreadHandle := GetCurrentThread; SetThreadPriority(ThreadHandle, StopienWatku); end;Argumenty tej funkcji podane są powyżej. Jej wywołanie może wyglądać następująco : procedure TForm1.Button1Click(Sender: TObject); begin UstawPriorytet(REALTIME_PRIORITY_CLASS, THREAD_PRIORITY_TIME_CRITICAL); end; Z ustawianiem priorytetów trzeba uważać. W szczególności nie ustalajmy zbyt wysokich tam, gdzie nie jest to konieczne, gdyż prowadzi to do znacznego obniżenia wydajności innych programów.
Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie. |
||
| wstecz | dalej » |
|---|




