2

我正在编写一个游戏,我想为我的游戏主循环启动一个事件,该事件必须在很短的时间间隔后触发。

DispatcherTimer 帮助我实现了这一点,我遇到了这篇文章

http://blogs.silverlight.net/blogs/msnow/archive/2008/07/09/storyboard-versus-dispatchertimer-for-animation-and-game-loops.aspx

根据它 StoryBoard 方法比 dispatchertimer 更好。这个博客是为 Silverlight 写的,如果 WPF 故事板也在第二个线程上启动,我仍在 MSDN 文档中搜索。有谁知道在 WPF 中使用情节提要计时器是否比调度程序计时器具有优势。

4

2 回答 2

4

您也可以尝试使用 CompositionTarget.Rendering 事件,只要远离 StoryBoard。以下是关于 CompositionTarget.Rendering 的几个链接:

如何:使用 CompositionTarget 在每帧间隔上渲染

Silverlight CompositionTarget.Rendering 游戏循环

动画乐趣第 1 部分 - CompositionTarget.Rendering

于 2009-09-15T14:32:32.480 回答
2

我想说,既然来自官方博客,那么它可能是正确的,并且优点是该博客文章中列出的那个。这篇文章是由微软 Web 工具团队的一位高级 SDET 负责人撰写的。所以我不得不假设他所说的话是有价值的。

根据我的研究,StoryboardTimer 优于 DispatcherTimer 的原因如下:

  1. StoryBoard 在不受 DispatcherTimer 所在的 UI 线程影响的单独线程上处理。
  2. DispatcherTimer 是比 Storyboard 类后面的计时器低分辨率的计时器,这会导致保真度下降。
  3. Storyboard 的执行在不同支持的操作系统和 Web 浏览器中更加稳定。
于 2009-09-15T13:44:27.840 回答