WPF-更精确的计时器

时间:2018-07-17 20:23:38

标签: c# wpf datetime time dispatchertimer

我是CS和WPF的新手。我将获得一个DateTime对象并将其设置为计时器的开始。但是我使用了DispatcherTimer.Tick。稍加注意和使用窗口控件,我会觉得它不正确。显然,它位于程序的其他功能旁的单个线程中。

 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();
 }

还有另一种方法可以使用更精确的计时器吗?

2 个答案:

答案 0 :(得分:2)

不加秒。这是正确的:

    fig = plt.figure(figsize=(8,6))
ax = fig.gca()
frame['ArrDelay'].boxplot(ax = ax)
ax.set_title('BoxPlot of ArrDelay')
ax.set_xlabel('ArrDelay')
ax.set_ylabel('Delay Time')

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

private TimeSpan offset;

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

答案 1 :(得分:1)

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