为什么只有WP7的Silverlight有合成器线程?

6
上周我了解到,Windows Phone 上的 Silverlight 使用“合成器”线程来缓存位图和动画,并使它们独立于 UI 线程运行。这使得即使 UI 线程被阻塞,动画也能平滑运行。
我的问题是:为什么这只在 WP7 中引入,而不是 Silverlight(Web)或 WPF?
3个回答

4
微软最近的关注点主要集中在Windows Phone 7上的Silverlight上(决定性时刻),因此他们现在已经为手机添加了下一个版本Silverlight的必要功能。基本上,这些功能都是为了让手机看起来更快速/流畅/美观。
我听说Silverlight(浏览器版本)即将推出的功能之一是:在后台线程上运行动画Storyboard。上述内容来自最近一段视频(抱歉,我找不到链接了)。

WP7的重点正是我所期待的,很高兴听到它也出现在浏览器版本中。 - Erik Kerber
2
http://channel9.msdn.com/Shows/SilverlightTV/Silverlight-TV-50-The-State-of-Silverlight-with-Scott-Guthrie?wa=wsignin1.0 - Lukasz Madon

2
渲染线程(合成器)在Windows Phone 7设备上运行GPU。由于资源有限,为了让所有酷炫的动画都能在GPU上运行以及使用位图缓存图像,这是必要的。我想这是Windows Phone 7平台团队为实现Windows Phone 7设备上可能的视觉效果而不得不做出的不可避免的设计选择。当然,也许在适当的时候,这对于WPF和Silverlight总体来说也会很重要。因此,这并不是提供另一个线程以减轻CPU负载的问题,而是一个管理GPU的线程。UI线程在CPU上运行,处理一般的UI交互和所有其他非GPU代码。

2

如果要让合成器线程特别在GPU上运行,需要软件运行的硬件拥有GPU,并且还要足够强大以满足任务需求。

WP7设备是第一个可以保证每个运行Silverlight的硬件都具有基本硬件要求的地方。

如果Silverlight尝试这样做,它必须将组合器移动到CPU上,如果它运行的硬件没有GPU。如果该CPU是单核心,则在某些机器上,底层代码仅变得更加复杂,但性能并未提高。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接