[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
В API Windows есть функции :
QueryPerformanceFrequency
QueryPerformanceCounter
The QueryPerformanceFrequency function retrieves the frequency of the high-resolution performance counter.
The QueryPerformanceCounter function retrieves the current value of the high-resolution performance counter.
У меня на машине функция QueryPerformanceFrequency возвращает число 1193180 - т. е. частота этого счетчика 1193180, а период получается менее одной микросекунды, так что Вам должно хватить. Я эту функцию вызываю один раз при старте программы, чтобы узнать период счетчика, а далее все задержки пересчитываю в тики этого high-resolution performance counter и для задержек использую цикл, в котором считываю текущее значение этого счетчика, пока оно не станет большим или равным требуемого значения.
Еще рекомендуется своему приложению в такие критические моменты устанавливать самый высокий пориоритет - типа real time, а то Windows в общем-то в принципе может сама не в тему "вклиниться" и что-то свое в это время делать - своппинги там разные.
Так что можно и без драйверов обойтись :-)))
P.S.
А еще в API есть функция : DWORD GetTickCount(VOID)
The GetTickCount function retrieves the number of milliseconds that have elapsed since Windows was started.
Но она менее "чувствительная".
E-mail: info@telesys.ru