请解释@Kent Boogaart在多线程WPF应用程序中作为任务调度程序使用的“Dispatchermer”和“常规计时器”之间的区别:
WPF应用程序多线程策略所需的建议
在其中一篇文章的评论中(引用):
-如果Dispatcher所做的只是启动另一个线程,那么使用Dispatcher有什么意义?
..这些线程不需要在UI线程上启动。您可以使用常规计时器,避免完全中断UI
什么是“定时定时器”?它们(“Dispatcher”和“regular Timer”)对UI的影响如何不同?
(在读到这篇文章之前,我一直认为Dispatchermer是WPF中使用计时器的一种自然方式。如果不是这样,会发生什么情况?)
Dispatchermer是常规计时器。它在UI线程上触发勾号事件,您可以对UI执行任何操作。System.Timers.Timer是一个异步计时器,其已用事件在线程池线程上运行。在事件处理程序中必须非常小心,不允许接触任何UI组件或数据绑定变量。在访问UI线程上使用的类成员时,需要使用lock语句
在链接的答案中,Timer类更合适,因为OP试图异步运行代码