【发布时间】:2018-07-17 20:23:38
【问题描述】:
我是 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();
}
还有其他方法可以让计时器更准确吗?
【问题讨论】:
-
您的计时器需要“准确”到什么程度?约 15 毫秒的分辨率对于 99% 的用例来说已经足够了。忽略其他任何事情,stackoverflow.com/questions/3744032/… 可能会为您提供一些启示。
-
DispatcherTimer 仅对定期更新 Text 属性有用。它的实际间隔并不重要,尽管当您使用恰好一秒时,您会看到奈奎斯特采样定理所说的内容。使用 100 毫秒对人眼来说是一个合理的折衷方案。
标签: c# wpf datetime time dispatchertimer