Я делаю простой стробоскоп, прикрепленный к компьютеру.
У меня есть петля Вот так:
double SleepTime = 1000 / Hz;
while ()
{
BlinkAll();
Thread.Sleep((int)SleepTime);
}
Но это очень неточно.
Если Гц = 666
чем
SleepTime = 1,5
а также
(int) SleepTime = 1
это означает, что на выходе я получаю 1000 Гц, а не 666 Гц. Это большая разница.
Как это исправить?
приписка
Этот пример все еще не точен. Лучше, но никак не хорошо:
double SleepTime = 1000 / Hz;
Thread.Sleep((int)SleepTime + 0.5)