在开发上位机软件的过程中,发现一个奇怪的问题,就是使用DispatcherTimer定时器不准的问题 例如定时器时间定时了300ms,但是在断点的调试中,DispatcherTimer定时器的时间间隔可以达到1秒多才执行。
此问题会导致界面元素刷新卡滞。
搜索官方资料DispatcherTimer 类 (System.Windows.Threading) | Microsoft Learn
不保证计时器在时间间隔发生时准确执行,但保证它们不会在时间间隔发生之前执行。 这是因为 DispatcherTimer 操作与其他操作一样放在队列上 Dispatcher 。
如何解决这个问题,Dispatcher提供了一个DispatcherPriority,通过可以设置这个参数去解决这个问题。官方文档地址DispatcherPriority 枚举 (System.Windows.Threading) | Microsoft Learn
我们来看实验结果:
基本能保证误差在几个毫秒之内。
喜欢的收藏点赞