Мультимедийный таймер

Тема в разделе "Delphi - Компоненты", создана пользователем chingiz, 18 янв 2008.

  1. chingiz

    chingiz Гость

    Привет всем. Вопрос собственно не совсем про компоненты, просто не смог подобрать более подходящего раздела. На данный момент я пока знаю три таймера: TTimer - Delphi, системный таймер и мультимедийный таймер, через API Windows. Вот небольшая прога для тестирования.
    Посмотреть вложение ProbaTime.zip
    Вопрос собственно вот в чем: Мне нужно выполнить некоторую процедуру с периодичностью в 1 милисекунду, из тестовой программы видно, что делфийский и системный таймеры отстают от реального времени уже при значении 10 милисекунд, а таймер мультимедиа вроде бы тикает более менее точно даже при значении 1 милисекунда, но довольно часто вылетает такая и подобные ей ошибки
    Посмотреть вложение irror.zip
    Меня интересует почему выскакивают ошибки и как от этого избавится?
     
  2. gozer

    gozer Гость

    Я программу не смогу поставить, т.к. на работе нет Delphi, но таймер хороший посоветывать могу.
    есть "DelphiX" компоненты для создания игр под DirectX, но самое хорошее там DXTimer и DXInput - попробуй!
     
  3. Yason

    Yason Гость

    chingiz, проблема заключается в том, что mmTimerProc вызвается не из основного потока, а из потока таймера, асинхронно. Поэтому иногда появляются артефакты в виде чисел, нарисованных где попало на экране, и в виде access violation'ов.
    Вообще, произвольно появляющийся глюк обычно указывает на проблемы синхронизации потоков.
    Резюме: (частное) не работайте с элементами интерфейса в mmTimerProc; и (общее) синхронизируйте ваши потоки.
     
Загрузка...
Похожие Темы - Мультимедийный таймер
  1. Shouldercannon
    Ответов:
    0
    Просмотров:
    634
  2. Aris
    Ответов:
    0
    Просмотров:
    996
  3. масенький
    Ответов:
    0
    Просмотров:
    1.115
  4. shilovec5377
    Ответов:
    0
    Просмотров:
    1.572
  5. shilovec5377
    Ответов:
    0
    Просмотров:
    1.200

Поделиться этой страницей