Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
18:01:2008, 18:23
|
|
Новенький ![]() Группа: Программист Сообщений: 13 Регистрация: 30:05:2007 Из: Россия г.Кумертау Пользователь №: 11 121 Специализация: Pascal, Delphi, УП на станки с ЧПУ Репутация: 0
|
Привет всем. Вопрос собственно не совсем про компоненты, просто не смог подобрать более подходящего раздела. На данный момент я пока знаю три таймера: TTimer - Delphi, системный таймер и мультимедийный таймер, через API Windows. Вот небольшая прога для тестирования.
ProbaTime.zip ( 8.17 килобайт )
Кол-во скачиваний: 25Вопрос собственно вот в чем: Мне нужно выполнить некоторую процедуру с периодичностью в 1 милисекунду, из тестовой программы видно, что делфийский и системный таймеры отстают от реального времени уже при значении 10 милисекунд, а таймер мультимедиа вроде бы тикает более менее точно даже при значении 1 милисекунда, но довольно часто вылетает такая и подобные ей ошибки
irror.zip ( 30.96 килобайт )
Кол-во скачиваний: 20Меня интересует почему выскакивают ошибки и как от этого избавится? |
|
Сообщение
#1
|
|
![]() |
|
|
7:05:2008, 03:12
|
|
Новенький ![]() Группа: Программист Сообщений: 32 Регистрация: 26:06:2006 Пользователь №: 5 038 Специализация: администратор Репутация: 0
|
Я программу не смогу поставить, т.к. на работе нет Delphi, но таймер хороший посоветывать могу.
есть "DelphiX" компоненты для создания игр под DirectX, но самое хорошее там DXTimer и DXInput - попробуй! |
|
Сообщение
#2
|
|
|
|
7:05:2008, 17:19
|
|
Продвинутый ![]() ![]() Группа: Программист Сообщений: 134 Регистрация: 27:02:2004 Пользователь №: 296 Репутация: 6
|
chingiz, проблема заключается в том, что mmTimerProc вызвается не из основного потока, а из потока таймера, асинхронно. Поэтому иногда появляются артефакты в виде чисел, нарисованных где попало на экране, и в виде access violation'ов.
Вообще, произвольно появляющийся глюк обычно указывает на проблемы синхронизации потоков. Резюме: (частное) не работайте с элементами интерфейса в mmTimerProc; и (общее) синхронизируйте ваши потоки. |
|
Сообщение
#3
|
|
![]() |
|
Текстовая версия | Сейчас: 5:07:2008 - 04:21 |