Неадекватные таймеры, как быть?
От: Ushastyy  
Дата: 18.09.09 13:04
Оценка:
Здравствуйте. Наверно такая проблема возникала, поделитесь советом.
Задача: Программа на VS2008C# должна выполнять действие через точный интервал времени.
Проблема: На разных компах таймер срабатывает с разной погрешностью.

Например
На компе P4 3.0 Ггц таймер 200 миллисекунд отрабатывает с точностью до 0.5 миллисекунды.
На Р4 3.2 Ггц тот же таймер срабатывает стабильно на 5-6 мс позже.
На двухядерном таймер на 200мс срабатывает раньше на 30 мс!

Сначала использовал обычный таймер System.Threading.Timer.
Потом попробовал использовать
ThreadPool.RegisterWaitForSingleObject(ev, _whaitTimerDelegate, null, interval, true);

на этом форуме вычитал вот этот таймер
[DllImport("WinMM.dll", SetLastError = true)]
        private static extern uint timeSetEvent(int msDelay, int msResolution,
                    TimerEventHandler handler, ref int userCtx, int eventType);


Последний таймер срабатывает немного точнее, но всё равно время срабатывания очень разнится на разных компах.

Как же всётаки добиться одинакового срабатываения таймера? Есть ли другие возможности или таймеры? За ранее спасибо за любое мнение.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.