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