上週我瞭解到,Windows Phone上的Silverlight使用「compositor」線程來緩存位圖和動畫,並獨立於UI線程運行它們。這使得即使UI線程被阻塞,動畫也可以流暢運行。爲什麼只有WP7的Silverlight有一個合成器線程?
我的問題是:爲什麼這個只介紹了WP7,而不是Silverlight的(網絡)或WPF?
上週我瞭解到,Windows Phone上的Silverlight使用「compositor」線程來緩存位圖和動畫,並獨立於UI線程運行它們。這使得即使UI線程被阻塞,動畫也可以流暢運行。爲什麼只有WP7的Silverlight有一個合成器線程?
我的問題是:爲什麼這個只介紹了WP7,而不是Silverlight的(網絡)或WPF?
很多微軟最近的焦點一直在Silverlight中爲Windows Phone 7(做或打破時間),所以他們增加基本特徵,以現在的手機,這將是在Silverlight的下一個版本。基本上任何東西都可以使手機看起來快速/流暢/良好。
聽說即將到來的功能的具體提到在Silverlight(瀏覽器版本)是:「在後臺線程運行的動畫故事板」。這是在最近的視頻(遺憾的是失去了鏈接)。
合成器(渲染)線程在Windows Phone 7設備上運行GPU。
作爲一個資源受限設備,有必要做所有的很酷的動畫來對GPU上運行這個東西使用位圖緩存圖像。我想這是Windows Phone 7平臺團隊不可避免的設計選擇,以實現Windows Phone 7設備上可能的視覺效果。
當然,或許也將是相關的WPF和Silverlight在適當的時候做的一般。
所以它不是這麼多關於提供另一個線程從CPU減輕負荷。這是管理GPU的一個線索。 UI線程運行在CPU上,處理一般UI交互和所有其他非GPU代碼。
要使合成器線程專門運行在GPU上需要運行的軟件硬件都有一個GPU,它是任務sufficicently強大。
WP7設備,他們可以保證每一塊運行Silverlight的硬件都有一個基準硬件要求放在首位。
如果Silverlight的試圖做到這一點,就必須移動合成到CPU,如果它運行的硬件沒有一個GPU。如果該CPU是單核,那麼在某些機器上,底層代碼會變得更加複雜,從而無法提高性能。
WP7的重點是我的預期,很高興聽到它也在瀏覽器版本中。 – 2010-11-05 14:31:46
http://channel9.msdn.com/Shows/SilverlightTV/Silverlight-TV-50-The-State-of-Silverlight-with-Scott-Guthrie?wa=wsignin1.0 – 2010-11-05 23:45:27
http://www.hanselminutes.com /default.aspx?showID=246 – 2010-11-06 17:53:42