如何在WPF中创建计时器?


76

我是wpf计时器的新手,我需要一个代码,每隔5分钟就会弹出一个消息框。。任何人都可以帮助我获取简单的计时器代码。

这是我到目前为止尝试过的:

System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); 
private void test() 
{ 
    dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); 
    dispatcherTimer.Interval = new TimeSpan(0, 0, 1); 
    dispatcherTimer.Start(); 
} 
private void dispatcherTimer_Tick(object sender, EventArgs e)
{ 
    // code goes here 
} 

private void button1_Click(object sender, RoutedEventArgs e)
{ 
    test(); 
} 

System.Windows.Threading.DispatcherTimer dispatcherTimer =新的System.Windows.Threading.DispatcherTimer(); 私人无效测试(){dispatcherTimer.Tick + =新的EventHandler(dispatcherTimer_Tick); dispatcherTimer.Interval = new TimeSpan(0,0,1); dispatcherTimer.Start(); } private void dispatcherTimer_Tick(object sender,EventArgs e){//代码在这里} private void button1_Click(object sender,RoutedEventArgs e){test(); }
user27 2012年

7
编辑您的问题,而不要评论它。
克莱门斯

Answers:


164

在WPF中,您使用DispatcherTimer

System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0,5,0);
dispatcherTimer.Start();


private void dispatcherTimer_Tick(object sender, EventArgs e)
{
  // code goes here
}

更多信息在这里


4
它说“ //代码在这里”的地方,写“ Messagebox.Show(“消息在这里”);
Rhys Towey 2012年

并且不需要If语句吗?
user27 2007年

26

添加到上面。如果希望将滴答事件编组回UI线程,则可以使用Dispatch计时器。否则,我将使用System.Timers.Timer。


4
+1用于解释与UI线程的相关性-使用WPF时了解这一点至关重要。
JamesHoux
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.