![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как поменять приоритет 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]Никак. Дело в том, чтобы среагировать на срабатывания таймера, соотв. поток должен получить квант времени, что может произойти с неким опозданием... Таймер гарантирует только то, что он сработает не быстрее..