Як створити таймер у WPF?


78

Я новачок у таймері у 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 depecherTimer = новий System.Windows.Threading.DispatcherTimer (); приватний тест на порожнечу () {depecherTimer.Tick + = newHendHandler (depecherTimer_Tick); depecherTimer.Interval = новий TimeSpan (0, 0, 1); depecherTimer.Start (); } private void depecherTimer_Tick (відправник об’єкта, EventArgs e) {// код йде сюди} private void button1_Click (відправник об’єкта, RoutedEventArgs e) {test (); }
користувач27

7
Редагуйте своє запитання, замість того, щоб коментувати його.
Клеменс

Відповіді:


168

У WPF ви використовуєте 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
}

4
Там, де написано "// код йде сюди", напишіть "Messagebox.Show (" повідомлення йде сюди ");"
Rhys Towey

27

Додавання до вищесказаного. Ви використовуєте таймер відправлення, якщо ви хочете, щоб події галочки були маршальовані назад до потоку інтерфейсу користувача. В іншому випадку я б використовував System.Timers.Timer.


4
+1 для пояснення відповідності потоку інтерфейсу користувача - того, що важливо розуміти під час роботи з WPF.
JamesHoux
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.