2010-11-05 6 views
6

Letzte Woche erfuhr ich, dass Silverlight auf dem Windows Phone einen "compositor" -Thread verwendet, um Bitmaps und Animationen zu cachen und sie unabhängig vom UI-Thread auszuführen. Auf diese Weise können Animationen problemlos ausgeführt werden, selbst wenn der UI-Thread blockiert wird.Warum hat nur Silverlight für WP7 einen Compositor-Thread?

Meine Frage ist: Warum wurde dies nur für WP7 eingeführt, und nicht Silverlight (Web) oder WPF?

Antwort

4

Ein Großteil der jüngsten Fokus von Microsoft wurde auf Silverlight für Windows Phone 7 (Make-oder Pausenzeit), so dass sie wesentliche Funktionen zum Telefon hinzugefügt haben, die in der nächsten Version von Silverlight sein würde. Grundsätzlich alles um das Telefon schnell/glatt/gut aussehen zu lassen.

Ich hörte spezifische Erwähnung einer kommenden Funktion in Silverlight (Browser-Version) sein: "Animation Storyboards auf einem Hintergrund-Thread laufen". Das war in einem kürzlich erschienenen Video (sorry den Link verloren).

+0

Der WP7 Schwerpunkt war was ich erwartet hatte, gut zu hören, dass es auch in der Browser-Version geht. –

+2

http://channel9.msdn.com/Shows/SilverlightTV/Silverlight-TV-50-The-State-of-Silverlight-with-Scott-Guthrie?wa=wsignin1.0 –

+0

http://www.hanselminutes.com /default.aspx?showID=246 –

2

Der Compositor (Render) -Thread führt die GPU auf Windows Phone 7-Geräten.

Als ein Gerät mit eingeschränkten Ressourcen ist es notwendig, all die coolen Animationen zu machen, damit diese Dinge auf der GPU mit Bitmap-Bildern im Cache laufen. Ich könnte mir vorstellen, dass dies eine unvermeidliche Design-Entscheidung für das Windows Phone 7-Plattform-Team war, um die Art von Visualisierungen zu erreichen, die auf Windows Phone 7-Geräten möglich sind.

Sicher, vielleicht wird es zu gegebener Zeit auch für WPF und Silverlight allgemein relevant sein.

Es geht also nicht so sehr darum, einen weiteren Thread zur Entlastung der CPU bereitzustellen. Es ist ein Thread, um die GPU zu verwalten. Der UI-Thread wird auf der CPU ausgeführt und behandelt allgemeine UI-Interaktion und alle anderen Nicht-GPU-Codes.

2

Damit der Compositor-Thread speziell auf einer GPU ausgeführt wird, muss die Hardware, auf der die Software ausgeführt wird, über eine GPU verfügen und für die Aufgabe ausreichend leistungsstark sein.

WP7-Geräte sind der erste Ort, an dem sie garantieren können, dass jedes Hardware-Teil, das Silverlight ausführt, eine grundlegende Hardwarevoraussetzung hat.

Wenn Silverlight dies versuchen würde, müsste es den Compositor auf die CPU übertragen, wenn die Hardware, auf der es lief, keine GPU hatte. Wenn diese CPU ein einzelner Kern wäre, dann wäre auf einigen Maschinen der zugrunde liegende Code nur komplizierter geworden, ohne dass es zu einer Leistungssteigerung gekommen wäre.

Verwandte Themen