Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 22:23   #1
NSvirus
пропагандирую жизЪ
Форумчанин
 
Аватар для NSvirus
 
Регистрация: 19.03.2007
Сообщений: 950
По умолчанию Объект Таймер

C++, Таймер.

Вот такая штука:

Интервал ставлю на 100. Внутри подсчитываю тики. Нужно например завершить таймер через 5 сек. Делаю так:
Таймер.
Код:
Тик+=100
Если Тик= 5*1000, Таймер остановить.
Но получается что таймер идет не точно. Т.е мне нужно домножить кол-во сек на какой-либо коэффициент. Но для разного времени он разный. Что-то не врублюсь, почему такой разброс между тем что должно быть, и тем что в реале. И как эту проблему решить?
Посторонним В.
NSvirus вне форума Ответить с цитированием
Старый 30.05.2011, 22:48   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А чем не устраивает интервал 5000? Это наверно поточней будет чем предложенный вами способ
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.05.2011, 22:59   #3
NSvirus
пропагандирую жизЪ
Форумчанин
 
Аватар для NSvirus
 
Регистрация: 19.03.2007
Сообщений: 950
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А чем не устраивает интервал 5000? Это наверно поточней будет чем предложенный вами способ
Необходимо используя 1 таймер перемещать изображение каждые 100мс в течении 5 сек, или вы знаете другой способ как это сделать?
Посторонним В.
NSvirus вне форума Ответить с цитированием
Старый 30.05.2011, 23:07   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Но ведь каждые 100мс вы выполняете некие действия, плюс параллельно что-то в винде работает, отклонение накапливается и плакали 5 секунд. А если таймер просто через 5 сек сигнализирует о прекращении перемещения картинки, а само перемещение, например, в цикле с использованием Sleep? Может и получится большая точность?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.05.2011, 23:11   #5
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

windows не является ОС реального времени
_Engine_ вне форума Ответить с цитированием
Старый 30.05.2011, 23:18   #6
NSvirus
пропагандирую жизЪ
Форумчанин
 
Аватар для NSvirus
 
Регистрация: 19.03.2007
Сообщений: 950
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Но ведь каждые 100мс вы выполняете некие действия, плюс параллельно что-то в винде работает, отклонение накапливается и плакали 5 секунд. А если таймер просто через 5 сек сигнализирует о прекращении перемещения картинки, а само перемещение, например, в цикле с использованием Sleep? Может и получится большая точность?
Оке, попробую, спасибо.
Посторонним В.
NSvirus вне форума Ответить с цитированием
Старый 31.05.2011, 12:19   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Необходимо используя 1 таймер перемещать изображение каждые 100мс в течении 5 сек, или вы знаете другой способ как это сделать?
Цитата:
Но получается что таймер идет не точно.
таймер работает только на оповещение. (инициализацию запуск процедуры) ~100mc(можно и ~50)
внутри процедуры для отображения и остановки использовать СИСТЕМНОЕ время, сверяя его контрольным (сначала установить его в начале)
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 31.05.2011 в 12:22.
evg_m вне форума Ответить с цитированием
Старый 02.05.2012, 20:55   #8
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

делфи 7.
мужики помогите, нужно в консольном приложении сделать таймер который бы проверял каждые 10 секунд, есть тот или иной процесс, если нет то запускал, иначе ничего, спасибо!
hacknet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шаблоны - нужно создать объект класса abc в котором вместо aa использовался бы объект класса fff? Farrel Общие вопросы C/C++ 2 13.11.2010 17:37
таймер Hunter557 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 21.09.2010 21:40
добавить в объект объект. the_deer_one Общие вопросы C/C++ 7 10.09.2010 12:17
Таймер timyr1997 Общие вопросы Delphi 2 07.08.2010 15:25
Таймер Nitrino Общие вопросы C/C++ 2 29.12.2009 23:17