最近在绘制实时曲线图
DispatcherTimer:(循环周期固定10ms/次)
不设优先级: 每秒最多只能触发12次左右,平均大概80ms一次
设置优先级为 DispatcherPriority.Render:每秒触发:56次左右,大概18ms一次
CompositionTarget.Rendering:每秒触发48次左右,平均大概20ms一次
CompositionTarget.Rendering注解:
可以使用呈现事件处理程序创建自定义绘图内容。 此事件处理程序每帧调用一次。 每次Windows Presentation Foundation (WPF) 将可视化树中的持久呈现数据封送到合成树时,都会调用事件处理程序。 此外,如果对可视化树的更改强制更新到合成树,则还会调用事件处理程序。 请注意,在计算布局后会调用事件处理程序。 但是,可以在事件处理程序中修改布局,这意味着在呈现之前将再次计算布局。
DispatcherTimer第一次亮相是在Silverlight(WPF)中作为一个后台线程计时器。与原System.Threading.Timer相比,不同之处在于DispatcherTimer是真正的在后台线程中独立执行的,而定时器Timer仍然在UI线程中执行,每隔一个指定的时间接管UI线程的控制权。总体来看,DispatchTimer主要适合于调度任务的情况。在这种情况下,我们可以根据实际要求设置等待时间。