![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приоритет
Sergo © (2002-05-06 13:13:00)Как своей проге можно назначить 31 приоритет?
Sergo (2002-05-12 11:49:00) [1]Спасибо.
Anatoly Podgoretsky (2002-05-12 11:41:00) [2]SetThreadPriority
Sergo (2002-05-12 08:16:00) [3]Спасибо всем!
С HIGH_PRIORITY_CLASS все работает нормально.
А какую функцию нужно поставить для THREAD_PRIORITY_TIME_CRITICAL?
слон (2002-05-10 05:23:00) [4]Приятно посмотреть, как умные люди копья ломают
Anatoly Podgoretsky (2002-05-09 11:11:00) [5]Ну зя что боролся, на то и напоролся, хотел "желательно в realtime" снизь свои требования и все будет хорошо. А ты еще требовал и выше, чем REALTIME, а именно 31, то есть REALTIME+3
paul_shmakov (2002-05-08 20:11:00) [6]2 Sergo:
резюме: не стоит впадать в крайности - ни idle priority, ни тем более realtime не нужно ставить своему процессу. если нужно все таки повысить приоритет, то ставьте HIGH_PRIORITY_CLASS процессу и THREAD_PRIORITY_HIGHEST или THREAD_PRIORITY_TIME_CRITICAL потоку, считывающему данные с устройства.
Fellomena (2002-05-08 15:19:00) [7]2 Sergo © (08.05.02 08:11):
Странный ты какой-то 8)
SetPriorityClass( GetCurrentProcess(), IDLE_PRIORITY_CLASS );
Устанавливает процессубазовый приоритет равный 4, нормальный приоритет 8, т.е. если твой процесс имеет приоритет типа IDLE_PRIORITY_CLASS, то диспечер будет отдавать твоему процессу тики, только когда система "не загружена".
SetPriorityClass( GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
Устанавливает процессубазовый приоритет равный 28, максимальный приоритет 31, т.е. если твой процесс имеет приоритет типа REALTIME_PRIORITY_CLASS, то диспечер отдаёт твоему процессу всё время, получается что-то типа невытесняющей многозадачности.
И виснет всё тоже именно поэтому, т.к. система "забита" твоим процессом, т.е. у неё нет свободных ресурсов для обработки всех остальных запросов и отвиснуть она может только в случае, если твой процесс завершит работу.
Sergo (2002-05-08 11:59:00) [8]Да... рано радовался :((
Если запустить прогу и минут через пять попытаться выключить ее, то она вешает наглухо комп. Почему?
Sergo (2002-05-08 08:11:00) [9]>Anatoly Podgoretsky ©
Sergo © (07.05.02 11:48)
Так тогда тебе нужен REALTIME_PRIORITY_CLASS
Я поставилSetPriorityClass( GetCurrentProcess(), REALTIME_PRIORITY_CLASS);Правильно? (Вроде бы все работает).
>Fellomena
SetPriorityClass( GetCurrentProcess(), IDLE_PRIORITY_CLASS );Из приличной синусоиды делает какую то лабуду :))
Raptor (2002-05-07 22:45:00) [10]С твоих слов я понял, что окно прсто-напросто не отрисовывается. Но что ты ожидал если поставил своему процессу самый низкий приоритет. Пока другие не отработают твой процесс не получит возможности что-то делать и, как результат, твое окно не может отрисоваться.
Fellomena (2002-05-07 16:21:00) [11]
Sergo © (07.05.02 08:05)
>Asteroid ©
SetPriorityClass( GetCurrentProcess(), IDLE_PRIORITY_CLASS );
При вставке в главную форму, она начинает искажать данные :((
Это каким же это образом она начинает искажать данные?
И кстати, какие данные?
Anatoly Podgoretsky (2002-05-07 16:17:00) [12]Sergo © (07.05.02 11:48)
Так тогда тебе нужен REALTIME_PRIORITY_CLASS
Sergo (2002-05-07 14:20:00) [13]Я поставил эту функцию в FormCreate и она начала искажать графическое изображение сигнала
SPeller (2002-05-07 11:48:00) [14]Sergo © (07.05.02 08:05)
Ты всё сделал как они сказали ?
Sergo (2002-05-07 11:48:00) [15]Моя прога обрабатывает входной сигнал на звукаху, желательно в realtime, поэтому я и хочу поставить ей высокий приоритет, а эта функция искажает график сигнала :((
Anatoly Podgoretsky (2002-05-07 11:18:00) [16]Не должна, если написана правильно, низкий приоритет и что то маштабное, визуальное не совместимы.
Sergo (2002-05-07 08:05:00) [17]>Asteroid ©
SetPriorityClass( GetCurrentProcess(), IDLE_PRIORITY_CLASS );
При вставке в главную форму, она начинает искажать данные :((
Asteroid (2002-05-06 21:05:00) [18]Можно и так:
SetPriorityClass( GetCurrentProcess(), IDLE_PRIORITY_CLASS );
Anatoly Podgoretsky (2002-05-06 17:00:00) [19]Лучше в .dpr или в главной форме
Sergo (2002-05-06 16:31:00) [20]>ZZ
:))
А где это выставить?