Wie erstelle ich einen Timer in WPF?


76

Ich bin ein Neuling im Timer in wpf und ich brauche einen Code, der alle 5 Minuten ein Meldungsfeld anzeigt. Kann mir jemand für den einfachen Code des Timers helfen?

Das habe ich bisher versucht:

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 = new System.Windows.Threading.DispatcherTimer (); private void test () {dispatcherTimer.Tick + = neuer EventHandler (dispatcherTimer_Tick); dispatcherTimer.Interval = new TimeSpan (0, 0, 1); dispatcherTimer.Start (); } private void dispatcherTimer_Tick (Objektabsender, EventArgs e) {// Code geht hierher} private void button1_Click (Objektabsender, RoutedEventArgs e) {test (); }
user27

7
Bearbeiten Sie Ihre Frage, anstatt sie zu kommentieren.
Clemens

Antworten:


164

In WPF verwenden Sie 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
}

Mehr Infos hier


4
Wo steht "// Code geht hierher", schreibe "Messagebox.Show (" Nachricht geht hierher ");"
Rhys Towey

und es braucht keine If-Anweisung?
Benutzer27

26

Hinzufügen zu den oben genannten. Sie verwenden den Dispatch-Timer, wenn die Tick-Ereignisse wieder in den UI-Thread zurückgeführt werden sollen. Ansonsten würde ich System.Timers.Timer verwenden.


4
+1 zur Erläuterung der Relevanz für den UI-Thread - etwas, das bei der Arbeit mit WPF unbedingt zu verstehen ist.
JamesHoux
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.