我想知道是否有其他选项显示当前时间而不使用DispatcherTimer?不幸的是,应用程序需要运行在缓慢的PC和DispatcherTimer不断增加内存使用。我在WPF性能分析工具中检查了这一点,这是真的-1秒时间跨度的CPU使用率约为5-15%。因为我使用类来获取时间值并在标签上显示,如果显示方法可以在没有xml生成控件的情况下运行,那将是非常棒的。
谢谢!
@EDIT:
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 0);
dispatcherTimer.Start();
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
lbl.Content = DateTime.Now.ToString("F");
// lbl is static label which i create once and show i several windows.
}
您的间隔为0,这意味着…为什么需要每秒更新10次以上的UI ?如果变化如此频繁,没有人能够处理这些变化。默认情况下,WPF每秒只更新屏幕60次,因此您的间隔应该至少为1000/60 = 16.6 ms。然而,我认为250ms就足够了。