![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приоретет программы
lsvit © (2006-11-09 23:18:00)Как мне запустить программу в самом низком приоретете? типа Idle
MBo (2006-11-10 14:21:00) [1]>Anatoly Podgoretsky
Конечно, в том, что офигенные вычисления в главном потоке (при наличии вторичных)
А гигабайты - это уж личное дело ;)
Anatoly Podgoretsky (2006-11-10 13:39:00) [2]> MBo (10.11.2006 12:48:06) [6]
В гигабайтах или в потоке?
MBo (2006-11-10 12:48:00) [3]> в основном теле программы считается CRC нескольких гигабайтных файлов, которую в поток и не хочется засовывать. и это очень сильно тормозит комп.
Так в этом и стратегическая ошибка
Gloomer (2006-11-10 08:36:00) [4]> lsvit (09.11.06 23:18)
> Как мне запустить программу в самом низком приоретете? типа
> Idle
Запустить произвольную программу? Или изменить приоритет своей при запуске?
1.
CreateProcess(nil,PChar(cmdline),nil,nil,False,0,nil,nil,si,pi);
SetPriorityClass(pi.hProcess,$0040);
2. [4]
sniknik (2006-11-10 00:26:00) [5]procedure TForm1.FormCreate(Sender: TObject);
begin
SetPriorityClass(GetCurrentProcess(), IDLE_PRIORITY_CLASS);
end;
lsvit (2006-11-09 23:59:00) [6]в том, то и дело, что поток у меня уже есть и он idle.
а в основном теле программы считается CRC нескольких гигабайтных файлов, которую в поток и не хочется засовывать. и это очень сильно тормозит комп.
---
2 DrPass
а куда мне это вставить и что в uses написать?
может пример есть?
DrPass (2006-11-09 23:49:00) [7]В общем случае так:
SetPriorityClass(ProcessHandle, IDLE_PRIORITY_CLASS);
Возможно, еще с привилегиями подшаманить придется
Percent (2006-11-09 23:21:00) [8]Зачем?
Запускай в программе поток, и давай ему низкий приоритет.
Или делай обработку данных в Application.OnIdle;