![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Нарвалась, оттуда и информация.
Когда прочла про WaitableTimer с наносекундным временем, обрадовалась. Мне нужно было регулировать скорость некоторого визуального процесса, и я решила что WaitableTimer идеально подходит: заводим таймер, выполняем шаг, до звонка курим, потом опять шаг и курим и т.д. - все в потоке, конечно - и звучит и реализуется элементарно. Только вот не проверила сразу диапазон доступной скорости в релизе. В дебаге верхний предел скорости был низковат, но я решила - там же море всякой фигни лишней + грешила на другие лишние операции. Когда пришло время таки разобраться со скоростью - выяснилось - не звонит он чаще, чем раз в 10 ms, хоть тресни. Или сразу срабатывает (если dueTime=0). Я его и так и этак (очень не хотелось переписывать), MSDN перерыла - ни слова не нашла. Провела измерения (не спрашивай какие - не помню уже - какой-то тест нарисовала), убедилась: увы. Если хорошенько подумать - это, наверно, очевидно для железячников: 100 Гц системный таймер... Но так хотелось... -------------------- ... |
|||
|
||||
takedo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: -1 Всего: 3 |
Да, походу дела размечтались
![]() ![]() Но так хотелось, это уж точно, но 10 ms - это за сто обращений - набежит 1 секунда!! Жуть... А где интересно этот таймер "крутится"? Надо наверное попытаться ему приоритет поднять обязательно. Добавлено @ 11:42 там же где и все он крутится?.. ммддааа.. Добавлено @ 11:44 Вот интересно, если запустить два идентичных процесса, в каждом по такому таймеру. Одному процессу поставить приоритет RealTime. Как тогда таймеры будут работать? (хоть бери и пробуй ей богу). Нет мыслей случайно? -------------------- я не гольфист - я хоккеист |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Знаешь, я выкрутилась так: просто собрала шаги в пакеты. Из заданной скорости вычисляю нужный период таймера (10, 20 и т.д. мс) и число шагов в пакете. Дальше - как и было: выполняется нужное число шагов, потом курим до звонка. Так что минимальными изменениями обошлась.
-------------------- ... |
|||
|
||||
takedo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: -1 Всего: 3 |
ну у тебя возможно так, а в принципе то надо бы как-то это решать по другому.. Надо брать товарища Рихтера, смотреть кому же принадлежит таймер(все-таки можно наверное с приоритетом потока, которому принадлежит таймер поиграть!). Ну если накопаю чего или тесты проведу, создам опять таки "интересное замечание"
![]() ![]() -------------------- я не гольфист - я хоккеист |
|||
|
||||
takedo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: -1 Всего: 3 |
Earnest c 10 ms тебе просто повезло! -------------------- я не гольфист - я хоккеист |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Я думаю, просто сейчас процессоры немного чаще это делать стали. Раньше системный таймер кажется именно 50 Гц был. Книжка-то старая - ей уж лет 10... И не думаю, что он все поправил под современное состояние дел.
-------------------- ... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |