![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| quadro44 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 13.5.2008 Репутация: нет Всего: нет |
Вот собственно она та проблема!
Вот небольшой кодец:
Так вот. Программа считает сколько прошло времени от нажатия кнопки Старт до ее повторного нажатия, что-то типа секундомера. Реализовано с учетом сотых миллисекунд. Но отсчет сильно отстает от того времени, которое показывает тот же Виндовс. Значит, реально проходит 30 сек, а програ показывает только 19 с копеками, не может же такая быть погрешность. Что примичательно на старой моей машине, Селерон 1200 на ХР Sp2, это работает на ура и погрешность небольшая, на уровне сотых. А новой Core Quad 6600 на XP SP3 так тупит. Че за прикол. Блин... Може кто-сталкивался с такой проблемой. О gettickcout() и getsystemtime() and getlocaltime() я знаю, именно интересует в чем здесь может быть прикол. |
|||
|
||||
| pseud |
|
||||||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
прикола никакого нет, просто Timer у тебя не срабаытвает каждые 10 мсек. лучше при Старте заводи переменную "время старта"
а какждое срабатывание Timera отображай разницу между временем сработки и временем старта
да и таймер выставь хотя бы на 50 а лучше на 100 мс -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
||||||
|
|||||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 9 Всего: 95 |
Прикол в том, что таймер (работающий через системное сооющение WM_TIMER) - это низкоприоритетное сообщение, поэтому отправляется окну только, если нет других сообщений и вообще система не занята, следовательно очень сильно зависит от внешних факторов и для точного отсчета времени непригоден. Если надо отсчитывать точные промежутки времени - лучше воcпользоваться QueryPerformanceCounter. Ну и 10 мс - это все-таки слишком... система все равно не может гарантированно отмерить отрезок меньше 50 мс (ибо не RT-система)...
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |