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

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

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


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;


Наверх

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