|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.10.2011, 20:31 | #1 |
Регистрация: 28.10.2011
Сообщений: 3
|
Неправильно работает таймер
Все доброго времени суток. У меня такая проблема, я сделал хронометр и когда запуская и сравниваю с другим хронометром (ручным) у меня получается что на компе он тормозит или бывает даже спешит, почему так?
|
28.10.2011, 20:59 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Стандартный TTimer очень способный в этом плане(тормоза и спешка).
Вам стоит взглянуть в сторону мультимедийных таймеров системы. http://msdn.microsoft.com/en-us/libr...09(VS.85).aspx |
28.10.2011, 21:00 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Windows не обеспечивает точности таймера(точнее не винда, а сам механизм).
таймер лишь руководство, что прошло около n времени(где n это период таймера) а время стоит сверять иными методами. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
28.10.2011, 21:19 | #4 |
Регистрация: 28.10.2011
Сообщений: 3
|
я в английском не очень шпарю, можете дать альтернативный русский сайтик?
|
28.10.2011, 21:30 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Увы "альтернативный русский сайтик" - такого нет,небыло и никогда не будет=) Учите английский
|
28.10.2011, 21:38 | #6 |
Регистрация: 28.10.2011
Сообщений: 3
|
это печально, а можете описать процедурку которую я могу вставить в программу что бы реализовать хронометр "минуты:секунды:доли_секунд"?
|
29.10.2011, 09:13 | #7 |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
|
07.11.2011, 14:26 | #8 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Интервал таймера какой высталяете? Чтобы по секундно таймер работал ставьте 600, но еще таймер бывает тормозит из за загруженности системы, для точности тогда сделайте потоковый таймер и дайте ему высокий приоритет, почитайте о потоках сделать это несложно.
|
07.11.2011, 14:35 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а имхо, проще в обычном таймере читать системное время. и уже от него отнимать/прибавлять начальное. Тогда можно свой таймер ставить на любой квант времени (баланс между загруженностью и откликом.. например, 150 мс.)
системный таймер идёт независимо от срабатывания локального таймера. Поэтому он сбиваться не будет. |
07.11.2011, 14:42 | #10 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Тогда согласен можно проще, делать сравнение по системному, как это уже было предложено. Запоздание все равно будет кода система в загруженности ведь он использует TTimer но результат конечно выравниться, это может привести к тому что срабатывать заданная по завершению процедура не сразу а с запозданием.
Но я делал тест для себя ради интереса по потоку и дал ему высокий приоритет, работало норм, отставаний незаметил. Последний раз редактировалось Aliens_wolfs; 07.11.2011 в 15:01. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Неправильно работает запрос | Lokos | БД в Delphi | 7 | 15.12.2010 06:49 |
sscanf() неправильно работает | BioS | Общие вопросы C/C++ | 7 | 06.02.2010 22:36 |
Неправильно работает WinExec? | TwiX | Общие вопросы Delphi | 2 | 26.11.2009 21:07 |
Скрипт неправильно работает | aleksa76 | JavaScript, Ajax | 4 | 21.05.2008 17:47 |
Запрос неправильно работает... | yulia | БД в Delphi | 0 | 27.05.2007 20:41 |