2011-01-03 7 views

Antwort

2

Wenn Sie nur für Leistungsbenchmarks interessiert sind, abonnieren Sie nicht Rendering Ereignis.

Dies kann die Leistung beeinträchtigen.

WPF gibt sich alle Mühe, dafür zu sorgen, dass Animationen mit hohen Frameraten von einem zweiten (nicht-ui) -Thread gerendert werden. Dieser Thread führt beispielsweise nur nicht verwalteten Code aus, um sicherzustellen, dass er nicht durch die Garbage Collection unterbrochen wird.

Wenn Sie sich beim Renderereignis anmelden, benötigen Sie WPF, um zwischen Ihrem UI-Thread und diesem Render-Thread zu synchronisieren. BEARBEITEN: Wenn Sie die Bildrate ändern möchten, können Sie eine DesiredFrameRate anweisen, indem Sie die Eigenschaft mit diesem Namen für eine Animation festlegen. (Standard ist 60).

Um die tatsächlichen Frameraten anzuzeigen, können Sie wie der Perforator profiling tools ausführen.

+0

Da dieses Rendering eine schlechte Leistung hat, können Sie mir bitte einen anderen Weg vorschlagen? – Seva

+0

Ich verstehe nicht, wie man die fps im Code hinter DesiredFrameRate einstellt. Kannst du mir bitte erklären? – Seva

+0

@Alan: DesiredFrameRate ist eine Abhängigkeitseigenschaft für alle Animationen, die von "Timeline" übernommen wurde. So können Sie es zum Beispiel auf eine Doppelanimation setzen. Für die Vererbungshierarchie siehe: http://msdn.microsoft.com/en-us/library/system.windows.media.animation.animationtimeline.aspx#inheritanceContinued –

Verwandte Themen