Высокоточная синхронизация событий мыши High-Def

Я работаю с мышью высокого разрешения (logitech g500) в Windows, для которой я хотел бы получить отметку времени с малой задержкой для необработанных событий мыши. Я использую временные метки для вычисления «пауз» между движениями мыши, поэтому важна относительная точность временных меток.

Я использую RAW INPUT API для отслеживания событий мыши. В сообщениях нет информации о времени, поэтому я использовал секундомер в Windows. Диагностика для получения «временной метки» при срабатывании обработчиков событий, т. е. первое действие в обработчике событий мыши — считывание секундомером прошедших тиков.

Поскольку в этом случае у меня нет никаких оснований для работы, видит ли кто-нибудь непосредственные и очевидные подводные камни в этом подходе? Или лучше, если вы работали с секундомером до каких-либо комментариев о задержке и ее изменчивости при разных показаниях секундомера?


person dave    schedule 31.07.2012    source источник
comment
Вы серьезно рискуете только реально измерить, насколько ваш поток пользовательского интерфейса реагирует на сообщение WM_INPUT. Что коррелирует с тем, что ваш поток делал ранее, прежде чем он снова вошел в цикл сообщений. И очень изменчивый.   -  person Hans Passant    schedule 31.07.2012


Ответы (1)


Класс Stopwatch использует таймер высокой производительности на вашем процессоре, если он доступен, поэтому это таймер с самым высоким разрешением, который вы собираетесь получить.

Вы можете убедиться, что у вас есть высокоточный экземпляр, используя свойство IsHighPrecision.

person Ed S.    schedule 31.07.2012