我想知道是否有其他选项可以在不使用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.
}
答案 0 :(得分:4)
你的间隔是零,意思是......哎哟。为什么有必要每秒更新UI超过10次?如果经常发生变化,任何人都无法处理这些变化。默认情况下,WPF每秒仅更新屏幕60次,因此您的间隔应至少为1000/60 = 16.6 ms。但是,我认为高达250毫秒的东西就足够了。