C#/XAML - DispatcherTimer 分辨率

C#/XAML - DispatcherTimer resolution

我正在用 C#/XAML 编写 Windows 10 通用应用程序。

我使用 DispatcherTimer class,我想知道它的分辨率是多少。我正在桌面环境中进行测试 - 当我将 Interval 属性 设置为小于 33 毫秒的值时,它似乎不会影响计时器 - tick 事件仍然像 Interval 设置为 33 毫秒一样频繁触发(大约每秒 33 次)。

这种行为是设计使然(您每秒触发 DispatcherTimer 的频率不能超过 33 次)还是取决于 App 的工作环境 - 例如 device/processor/memory 等 - 以及我的环境根本不支持更高的计时器分辨率?

虽然我到处都找不到官方文档,但你所观察到的似乎是有道理的。每秒 33 次是 Windows Phone 8.1 默认的 30 fps 左右。 很高兴知道您为什么需要这么高的分辨率?还要检查:WPF Timer problem… Cannot get correct millisecond tick

DispatcherTimer 只是在 UI 线程上对回调进行排队。即使在引擎盖下使用高分辨率计时器,由于随机 UI activity.

,它也会不可避免地出现抖动

如果预期用途是连续绘制,则应使用 SwapChainPanel - https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.swapchainpanel.aspx