2012-07-19 27 views
61

Ich bin ein Neuling in Timer in WPF und ich brauche einen Code, dass alle 5 Minuten gibt es ein Meldungsfeld wird angezeigt. .kann mir jemand für den einfachen Code des Timers helfen.Wie erstelle ich einen Timer in WPF?

Das ist, was 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(); 
} 
+0

System.Windows.Threading.DispatcherTimer dispatcherTimer = neu System.Windows.Threading.DispatcherTimer(); privater void test() { dispatcherTimer.Tick + = neuer EventHandler (dispatcherTimer_Tick); dispatcherTimer.Interval = neuer TimeSpan (0, 0, 1); dispatcherTimer.Start(); } private void dispatcherTimer_Tick (object sender, EventArgs e) { // Code geht hier } private void button1_Click (object sender, RoutedEventArgs e) { Test(); } – user27

+0

Ich habe diesen Code ausprobiert. – user27

+5

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

Antwort

125

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

danke! In alle 5 Minuten gibt es eine Messagebox in diesem Code? – user27

+2

Wo es heißt "// Code geht hier", schreibe "MessageBox.Show (" Nachricht geht hier ");" –

+0

und es braucht keine If-Anweisung? – user27

18

die oben Hinzufügen. Sie verwenden den Dispatch-Timer, wenn die Tick-Ereignisse zurück zum UI-Thread geleitet werden sollen. Ansonsten würde ich System.Timers.Timer verwenden.

Verwandte Themen