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

时间:2010-11-05 14:08:24

标签: wpf silverlight windows-phone-7

上周,我了解到Windows Phone上的Silverlight使用“compositor”线程来缓存位图和动画,并独立于UI线程运行它们。即使UI线程被阻止,这也允许动画顺利运行。

我的问题是:为什么这只针对WP7,而不是Silverlight(网络)或WPF引入?

3 个答案:

答案 0 :(得分:4)

微软最近关注的重点是Silverlight for Windows Phone 7(成败时间),因此他们已经为手机增加了必备功能,这些功能现在将出现在Silverlight的下一个版本中。基本上任何使手机看起来快速/平滑/良好的东西。

我听到Silverlight(浏览器版)中即将推出的功能的具体提及:“在后台线程上运行动画故事板”。那是在最近的视频中(遗憾地丢失了链接)。

答案 1 :(得分:2)

compositor(渲染)线程在Windows Phone 7设备上运行GPU。

作为一种资源受限的设备,有必要使用所有很酷的动画来让这些东西在GPU上运行,并使用位图缓存图像。我认为这是Windows Phone 7平台团队不可避免的设计选择,可以实现Windows Phone 7设备上可用的视觉效果。

当然,也许在适当的时候也可能与WPF和Silverlight有关。

所以它不是提供另一个线程来减轻CPU的负担。这是管理GPU的一个线程。 UI线程在CPU上运行,处理一般的UI交互和所有其他非GPU代码。

答案 2 :(得分:2)

要让合成器线程专门在GPU上运行,要求运行该软件的硬件具有GPU,并且该任务的功能非常强大。

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

如果Silverlight尝试这样做,如果运行的硬件没有GPU,则必须将合成器移到CPU上。如果那个CPU是单核,那么在某些机器上,底层代码就会变得更加复杂,从而无法获得性能提升。