Поскольку интервал таймера не точен, ваше обновление может быть плохо синхронизировано и будет дрейфовать относительно фактического перехода секунд.В некоторых случаях вы будете отставать или перед переходом и пропускать обновления на вашем дисплее времени
Вместо того, чтобы опрашивать на высокой частоте, чтобы запускать обновление при изменении секунд, этот метод может дать вам некоторое уважение.
Если вам нравятся регуляторы, вы можете отрегулировать свое обновление времени так, чтобы оно было безопасно расположено через 100 мс после фактического второго перехода, отрегулировав таймер 1000 мс с помощью свойства миллисекунды временной метки, которую вы хотите отобразить.
В коде события таймера сделайте что-то вроде этого:
//Read time
DateTime time = DateTime.Now;
//Get current ms offset from prefered readout position
int diffms = time.Millisecond-100;
//Set a new timer interval with half the error applied
timer.Interval = 1000 - diffms/2;
//Update your time output here..
Следующий интервал таймера должен сработать ближе к выбранной точке через 100 мс после перехода в секундах.Когда при переходе + 100 мс ошибка будет переключаться +/-, сохраняя вашу позицию считывания во времени.