WPF当前时间不使用调度程序

时间:2013-06-03 13:06:44

标签: wpf time dispatchertimer

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

谢谢!

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

1 个答案:

答案 0 :(得分:4)

你的间隔是零,意思是......哎哟。为什么有必要每秒更新UI超过10次?如果经常发生变化,任何人都无法处理这些变化。默认情况下,WPF每秒仅更新屏幕60次,因此您的间隔应至少为1000/60 = 16.6 ms。但是,我认为高达250毫秒的东西就足够了。