I solved this in the forms application by setting the interval (1000 - DateTime.Now.Millisecond)
_timer1 = new System.Windows.Forms.Timer();
_timer1.Interval = (1000 - DateTime.Now.Millisecond);
_timer1.Enabled = true;
_timer1.Tick += new EventHandler(updateDisplayedTime);
and in the event handler reset the interval to prevent drift.
<handle event>
_timer1.Interval = (1000 - DateTime.Now.Millisecond);
Philw source
share