WPF - 更准确的计时器

WPF - A more accurate Timer

我是 CS 和 WPF 的新手。我将获得一个 DateTime 对象并将其设置为我的计时器的开始。但是我用了DispatcherTimer.Tick。我可以稍微小心并使用 window 控件来感觉它不准确。它显然与程序的其他功能一起在一个线程中。

 DispatcherTimer timer = new DispatcherTimer();
 timer.Interval = TimeSpan.FromSeconds(1);
 timer.Tick += timer_Tick;
 timer.Start();

 void timer_Tick(object sender, EventArgs e)
 {  
     dateTime = dateTime.AddSeconds(1);
     TimeTb.Text = dateTime.ToLongTimeString();
 }

是否有其他方法可用于更准确的计时器?

当然。看看 System.Diagnostics.Stopwatch class。您正在重新发明轮子!

不加秒。这是准确的:

private TimeSpan offset;

void timer_Tick(object sender, EventArgs e)
{  
    TimeTb.Text = (DateTime.Now - offset).ToLongTimeString();
}

如果您想显示自开始时间以来经过的时间:

private DateTime start = DateTime.Now;

void timer_Tick(object sender, EventArgs e)
{  
    TimeTb.Text = (DateTime.Now - start).ToString();
}