Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приоритет потока 
:(
    Опции темы
Aquanox
  Дата 19.6.2008, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Добрый день уважаемым программистам. Извесно, что система динамически уменьшает приоритет потока на -1 когда приложение, которому принадлежит поток помещается на задний план. 
Подскажите как реализовать постоянное изменение знаения потока моего приложения на уровне/значении, равному приоритету окна на переднем плане? (с периодичностью указаной в таймере) или как его заставить работать не приостанавливаясь?



Это сообщение отредактировал(а) Aquanox - 19.6.2008, 09:15
PM MAIL   Вверх
Felan
Дата 23.6.2008, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 2.8.2007
Где: Самара

Репутация: 2
Всего: 7



Поставить наивысший приоритет - TimeCritical.

Хотя даже и такой поток все равно будет приостанавливаться, т.к. Win не является системой реального времени.
Да и зачем такие сложности...
Если по подробней расскажешь, что именно тебе надо, то может чего и посоветую.


--------------------
// Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного.
PM MAIL WWW ICQ   Вверх
Cashey
Дата 23.6.2008, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: нет
Всего: 60



Приоритет потока может отличатся от приоритета породившего его процесса на плюс/минус две единицы


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Aquanox
Дата 23.6.2008, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 20.1.2008

Репутация: нет
Всего: нет



Суть такоа, есть две копии приложения. когда одна из них активна то там выполнение идет как нужно, все быстро и без каких либо тормохов. обновляються данные... но а вторая копия этого же приложения когда теряет фокус и система меняет приоритет в распределении времени на обработку в меньшую сторону и обновления проходят куда медленее чем в активном окне...
Вот и я хочу в ручную изменять приоритеты потоков, скорее всего это будет завязано на таймер и моя программка должна находить по заголовку эти приложения. проверять если копий больше чем одна и запускать таймер, который будет через определенные интервалы времени уравнивать приоритеты этих двух приложений, что бы они работали с минимаьным отставанием... Тоесть как только система ждинамически уменьшит приоритет потока для неактивного окна я его верну на значения как у активного!

Добавлено через 1 минуту и 23 секунды
Цитата(Felan @  23.6.2008,  08:18 Найти цитируемый пост)
Поставить наивысший приоритет - TimeCritical. 

Я бы поставил, вот только знал бы как это делается... то и повода создавать этот пост не было бы.... 
PM MAIL   Вверх
Felan
Дата 23.6.2008, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 2.8.2007
Где: Самара

Репутация: 2
Всего: 7



Цитата(Aquanox @  23.6.2008,  17:38 Найти цитируемый пост)
Суть такоа, есть две копии приложения. когда одна из них активна то там выполнение идет как нужно, все быстро и без каких либо тормохов. обновляються данные... но а вторая копия этого же приложения когда теряет фокус и система меняет приоритет в распределении времени на обработку в меньшую сторону и обновления проходят куда медленее чем в активном окне...

Это и так понятно.

Цитата(Aquanox @  23.6.2008,  17:38 Найти цитируемый пост)
Вот и я хочу в ручную изменять приоритеты потоков, скорее всего это будет завязано на таймер и моя программка должна находить по заголовку эти приложения. проверять если копий больше чем одна и запускать таймер, который будет через определенные интервалы времени уравнивать приоритеты этих двух приложений, что бы они работали с минимаьным отставанием... Тоесть как только система ждинамически уменьшит приоритет потока для неактивного окна я его верну на значения как у активного!

Тебе самому это бредом не кажется?
Я имел ввиду другое. Для чего тебе это надо? Откуда берутся данные, какого они рода, и зачем их обрабатывать именно так быстро?

Цитата(Aquanox @  23.6.2008,  17:38 Найти цитируемый пост)
Я бы поставил, вот только знал бы как это делается... то и повода создавать этот пост не было бы....  


Ну очевидно как-то так:
Код

procedure TForm2.FormCreate(Sender: TObject);
var
  vTh: TThread;
begin
  vTh := TThread.Create(True);
  vTh.Priority := tpTimeCritical;

end;


Ну естественно,  с поправкой, на нужые классы. Или даже в конструкторе это сделать.

Но вообще-то, ты хочешь делать через не-то место. А если учесть, что говорил Cashey (я просто первый раз слышу про это, но очень может быть так и есть), то темболее...

Это сообщение отредактировал(а) Felan - 23.6.2008, 15:52


--------------------
// Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного.
PM MAIL WWW ICQ   Вверх
Rennigth
Дата 23.6.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 8
Всего: 76



Цитата(Cashey @  23.6.2008,  10:50 Найти цитируемый пост)
ритет потока может отличатся от приоритета породившего его процесса на плюс/минус две единицы 

Инфа откуда? На мой взгляд бред, могу ошибаться.  smile 


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
ama_kid
Дата 23.6.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 19
Всего: 95



Цитата(Rennigth @  23.6.2008,  18:43 Найти цитируемый пост)
Инфа откуда? На мой взгляд бред, могу ошибаться.
Ну дык из МСДН вроде. Другое дело, что эта не вся инфа - приоритет потока может быть +\- 2 от приоритета процесса, а также быть минимальным (IDLE) и максимальным (REALTIME) (а для процесса с приоритетом REALTIME_PRIORITY_CLASS - целая градация приоритетов потоков, выраженная числами):
Цитата
THREAD_PRIORITY_ABOVE_NORMAL = 1 (Priority 1 point above the priority class)
THREAD_PRIORITY_BELOW_NORMAL = -1 (Priority 1 point below the priority class)
THREAD_PRIORITY_HIGHEST = 2 (Priority 2 points above the priority class)
THREAD_PRIORITY_IDLE = -15 (Base priority of 1 for IDLE_PRIORITY_CLASS, BELOW_NORMAL_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, ABOVE_NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base priority of 16 for REALTIME_PRIORITY_CLASS processes)
THREAD_PRIORITY_LOWEST = -2 (Priority 2 points below the priority class)
THREAD_PRIORITY_NORMAL = 0 (Normal priority for the priority class)
THREAD_PRIORITY_TIME_CRITICAL = 15 (Base-priority level of 15 for IDLE_PRIORITY_CLASS, BELOW_NORMAL_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, ABOVE_NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base-priority level of 31 for REALTIME_PRIORITY_CLASS processes)


Это сообщение отредактировал(а) ama_kid - 23.6.2008, 19:18


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
dumb
Дата 25.6.2008, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 7
Всего: 158



Цитата(Aquanox @  23.6.2008,  16:38 Найти цитируемый пост)
Я бы поставил, вот только знал бы как это делается... то и повода создавать этот пост не было бы...
в той теме что-то недоступно для понимания?

Цитата(Aquanox @  23.6.2008,  16:38 Найти цитируемый пост)
Тоесть как только система ждинамически уменьшит приоритет потока для неактивного окна я его верну на значения как у активного!
нужно один раз после старта приложения установить ему класс приоритета выше, нежели normal. всё. это fore/background-изменение приоритета работает только для normal.
PM MAIL   Вверх
CodeMonkey
Дата 25.6.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 16
Всего: 89



Цитата(Cashey @  23.6.2008,  10:50 Найти цитируемый пост)
Приоритет потока может отличатся от приоритета породившего его процесса на плюс/минус две единицы

А как насчёт THREAD_PRIORITY_IDLE и THREAD_PRIORITY_TIME_CRITICAL? smile


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0977 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.