Was ist ein Unterschied between System.Windows.Forms.Timer()
und System.Windows.Threading.DispatcherTimer()
? In welchen Fällen sollten wir sie verwenden? Best Practices?
Windows.Forms.Timer
Verwendet die Windows Forms-Nachrichtenschleife, um Timer-Ereignisse zu verarbeiten. Es sollte verwendet werden, wenn Timing-Ereignisse geschrieben werden, die in Windows Forms-Anwendungen verwendet werden, und Sie möchten, dass der Timer auf dem Haupt-UI-Thread ausgelöst wird.
DispatcherTimer
ist der WPF-Zeitmechanismus. Es sollte verwendet werden, wenn Sie das Timing auf ähnliche Weise behandeln möchten (obwohl dies nicht auf einen einzelnen Thread beschränkt ist - jeder Thread hat seinen eigenen Dispatcher) und Sie WPF verwenden. Das Ereignis wird im selben Thread wie der Dispatcher ausgelöst.
Im Allgemeinen WPF == DispatcherTimer
und Windows Forms == Forms.Timer
.
Davon abgesehen gibt es auch System.Threading.Timer
einen Timer class
, der auf einem separaten Thread ausgelöst wird. Dies ist gut für rein numerisches Timing, bei dem Sie nicht versuchen, die Benutzeroberfläche usw. zu aktualisieren.
Ich habe hier einen guten Artikel über Timer mit kleinen Beispielen gefunden: http://www.progware.org/Blog/post/Timers-in-WPF.aspx
Als Schlussfolgerung:
quelle