上周,我了解到Windows Phone上的Silverlight使用"compositor“线程来缓存位图和动画,并独立于UI线程运行它们。这样,即使UI线程被阻塞,动画也可以顺利运行。
我的问题是:为什么这只针对WP7,而不是Silverlight或WPF?
发布于 2010-11-05 22:21:44
微软最近的很多关注点都集中在Windows Phone 7的Silverlight上(成败在此一举),因此他们现在已经为手机添加了一些基本功能,这些功能将出现在下一个版本的Silverlight中。基本上,任何能让手机看起来更快/更流畅/更好的东西。
我听说Silverlight (浏览器版本)中即将推出的一项功能是:“在后台线程上运行动画故事板”。这是在最近的一段视频中(对不起,失去了链接)。
发布于 2010-11-06 07:47:40
合成器(渲染)线程在Windows Phone 7设备上运行GPU。
作为一个资源受限的设备,有必要做所有很酷的动画,才能让这些东西在GPU上用位图缓存的图像运行。我认为对于Windows phone7平台团队来说,这是一个不可避免的设计选择,以实现在Windows phone7设备上可能实现的那种视觉效果。
当然,也许在适当的时候,它也会与WPF和Silverlight相关。
因此,它并不是为了提供另一个线程来减轻CPU的负载。它是一个管理GPU的线程。UI线程在CPU上运行,处理常规UI交互和所有其他非GPU代码。
发布于 2010-11-08 20:56:56
要让合成器线程专门在GPU上运行,需要运行软件的硬件具有GPU,并且GPU对于任务足够强大。
WP7设备是第一个可以保证运行Silverlight的每个硬件都有一个基准硬件需求的地方。
如果Silverlight试图这样做,如果运行它的硬件没有GPU,它将不得不将合成器移到CPU上。如果CPU是一个单核,那么在一些机器上,底层代码只会变得更加复杂,而不会带来性能提升。
https://stackoverflow.com/questions/4106621
复制相似问题