2012-07-19 67 views
61

我是wpf计时器的新手,我需要一个代码,每5分钟有一个消息框会弹出。 。任何人都可以帮助我定时器的简单代码。如何在WPF中创建一个计时器?

这就是我试过到目前为止:

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(); 
} 
+0

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(); } 私人无效dispatcherTimer_Tick(对象发件人,EventArgs的) { //代码到这里 } 私人无效的button1_Click(对象发件人,RoutedEventArgs E) { 测试(); } – user27 2012-07-19 11:44:58

+0

我试过这段代码。 – user27 2012-07-19 11:45:26

+5

编辑你的问题,而不是评论它。 – Clemens 2012-07-19 11:52:43

回答

125

在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 
} 

More info here

+0

谢谢!每5分钟在这个代码中有一个消息框? – user27 2012-07-19 11:48:31

+2

它说“// code goes here”,写“Messagebox.Show(”message goes here“);” – 2012-07-19 11:50:53

+0

它不需要If语句? – user27 2012-07-19 11:52:57

18

添加到上方。如果您想将编号事件编组回到UI线程,则使用Dispatch计时器。否则,我会使用System.Timers.Timer。