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

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

Как поменять приоритет TTimer? [D6, Win95/98, Win2k]


Intell ©   (2003-03-30 14:33:00) 

Как сделать так, чтобы Timer не зависел от загруженности системы?


Intell   (2003-04-01 17:02:00) [1]

Спасибо всем, нашёл компонент. Работает КАКчасы.


Polevi   (2003-04-01 12:28:00) [2]

>Intell © (31.03.03 15:24)
WaitForSingleObject работает на 9x


Morfein   (2003-03-31 21:20:00) [3]

а чё, CreateThread() + Sleep() использовать никак? что-то мешает?
плюс в разумных пределах для thread"a можно приоритет устанавливать...


Intell   (2003-03-31 20:44:00) [4]

Карлсон, где есть?


Volodymyr   (2003-03-31 20:44:00) [5]

попробуй torry.net в разделе таймеров - там есть несколько похожих на то, что тебе надо...

конкртно просто не помню, извини...


Карлсон   (2003-03-31 20:42:00) [6]

а если посмотреть Timer из пакета GLScene ?


Intell   (2003-03-31 20:37:00) [7]

Что ж... Будем жить с этим дальше. Спасибо всем в любом случае, хотя так и не получил того, чего хотел.


Shaman_Naydak   (2003-03-31 19:08:00) [8]


> NightAngel

Я бы не сказал, что они менее тяжеловесные..

> Intell

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


Intell   (2003-03-31 15:24:00) [9]

Насчет Sleep я знаю, просто хочется готовый компонент достать. А вот насчет WaitForSingleObject не знал, но всё равно не подходит, я под 9X работаю. Но пытаюсь совмещать с другими ОС. Может кто знает где можно подобный компонент достать, хоть издалека похожий?


NightAngel   (2003-03-30 22:23:00) [10]

Есть альтернатива User таймерам - это ожидаемые таймера, реализованные в ядре и поэтому менее тяжеловесные и более надежные. Они не посылают сообщений и должны ожидаться с помощью функции WaitForSingleObject или подобной. Это следующие функции API: CreateWaitableTimer, SetWaitableTimer, CancelWaitableTimer.
Но, эти функции не реализованы в Win9x.

Что можно сделать:
Функция Sleep - позволяет отсчитать заданное количество миллисекунд, не загружая при этом процессор. Во многих случаях достаточно просто вызвать эту функцию там, где нужна задержка, если потоку больше нечем заняться в течение этого интервала времени.
Отдельный поток (с высоким приоритетом), в котором будет крутиться цикл для отслеживания времени срабатывания. Цикл в отдельном потоке с вызовом Sleep с постоянным интервалом и опросом списка таймерных объектов (у каждого свой интервал, заданный клиентом) с определением момента срабатывания.


Intell   (2003-03-30 16:08:00) [11]

А что можешь подсказать по данной теме, может компонент есть похожий на Timer?


Ihor Osov'yak   (2003-03-30 15:03:00) [12]

Никак. Дело в том, чтобы среагировать на срабатывания таймера, соотв. поток должен получить квант времени, что может произойти с неким опозданием... Таймер гарантирует только то, что он сработает не быстрее..


Наверх

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