-2

我想知道是否有任何其他选项可以在不使用 DispatcherTimer 的情况下显示当前时间?不幸的是,应用程序需要在慢速 PC 上运行,而 DispatcherTimer 会不断增加内存使用量。我在 WPF 性能分析工具中检查了这一点,这是真的 - 时间跨度为 1 秒的 CPU 使用率约为 5-15%。而且因为我使用类来获取时间值并在标签上显示它,如果显示的方法可以在没有 xaml 生成的控件的情况下运行,那就太好了。

谢谢!

@编辑:

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. 
}
4

1 回答 1

4

你的间隔是零,意思是……哎呀。为什么需要每秒更新 10 次以上的 UI?如果变化如此频繁,没有人能够处理这些变化。默认情况下,WPF 每秒仅更新屏幕 60 次,因此您的时间间隔应至少为 1000/60 = 16.6 毫秒。但是,我认为高达 250 毫秒的时间就足够了。

于 2013-06-03T14:19:43.510 回答