文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
避免接触 UI 控件
多线程/多任务的第一条规则是没有一点关于 UI 控件代码存在。只有 UI 线程可以接触/操控图形控件。但在我们的例子中,有一段代码访问到 bmp.PixelWidth 和 bmp.PixelHeight。bmp 是 WriteableBitmap 类型,它被认为是一个 UI 元素,而不是线程安全的。这就是为什么,我们需要先修改这些代码才能使他们“并行”。在之前的教程中,我们就已经开始这么做了,那就是将 bmp 中的 PixelWidth 和 PixelHeight 的引用全部更改为 renderWidth 和 renderHeight 就可以了。
顺便说一句,这个规则不仅是并行处理所必须的,也是一般的性能优化。因此,通过简单的缓存机制把 WriteableBitmap 转移到我们的变量中便可以达到从 5 FPS 提升到 45 FPS!
在 Html5 中这个规则也是非常重要的。你应该避免直接访问 DOM 元素的属性,因为 DOM 操作非常慢。所以,它并不以 16 毫秒每帧的运行速度在运行。我们最好始终缓存接下来要使用到的值。不过我们已经在之前的教程中这么做了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论