93

I am a newbie in timer in WPF, and I need a code that every 5 minutes there is a message box will pop up. Can anyone help me for the simple code of timer?

That's what I tried so far:

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

2 Answers 2

195

In WPF, you use a 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
}
Sign up to request clarification or add additional context in comments.

1 Comment

Where it says "//code goes here", write " Messagebox.Show("message goes here"); "
42

Adding to the above. Use the DispatcherTimer if you want the tick events marshalled back to the UI thread. Otherwise, use System.Timers.Timer.

1 Comment

+1 for explaining relevance to UI thread -- something that is critical to understand when working with WPF.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.