System.Windows.Forms.Timer()
和 System.Windows.Threading.DispatcherTimer()
的区别是什么?在哪些情况下我们应该使用它们?有什么最佳实践吗?
Windows.Forms.Timer
使用 Windows Forms 消息循环来处理定时器事件。它适用于编写在 Windows Forms 应用程序中使用的计时事件,并且您希望定时器在主 UI 线程上触发。
DispatcherTimer
是 WPF 的定时机制。它适用于您希望以类似的方式处理计时(尽管不限于单个线程 - 每个线程都有自己的调度程序)并且正在使用 WPF。它会在与 Dispatcher 相同的线程上触发事件。
总的来说,WPF == DispatcherTimer
and Windows Forms == Forms.Timer
。
话虽如此,还有一个名为System.Threading.Timer
的计时器类,可以在单独的线程上触发。这适用于纯数字计时,在这种情况下您不需要更新 UI 等。