CompositionTarget.Rendered Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt unmittelbar auf, nachdem der Kernrenderingprozess einen Frame gerendert hat. Mit diesem Ereignis können Sie bestimmen, wie lange das Rendern jedes Frames dauert.
// Register
static event_token Rendered(EventHandler<RenderedEventArgs> const& handler) const;
// Revoke with event_token
static void Rendered(event_token const* cookie) const;
// Revoke with event_revoker
static CompositionTarget::Rendered_revoker Rendered(auto_revoke_t, EventHandler<RenderedEventArgs> const& handler) const;
public static event System.EventHandler<RenderedEventArgs> Rendered;
function onRendered(eventArgs) { /* Your code */ }
Windows.UI.Xaml.Media.CompositionTarget.addEventListener("rendered", onRendered);
Windows.UI.Xaml.Media.CompositionTarget.removeEventListener("rendered", onRendered);
- or -
Windows.UI.Xaml.Media.CompositionTarget.onrendered = onRendered;
Public Shared Custom Event Rendered As EventHandler(Of RenderedEventArgs)
Ereignistyp
Windows-Anforderungen
Gerätefamilie |
Windows 10, version 1803 (eingeführt in 10.0.17134.0)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v6.0)
|
Hinweise
Tipp
Es wird empfohlen, beim Entwickeln und Testen Ihrer Anwendung den Visual Studio-Anwendungszeitachsenprofiler zu verwenden. Sie enthält ausführlichere Informationen zum Ressourcenverbrauch Ihrer Anwendung, einschließlich der Zeit, die für die Vorbereitung von UI-Frames aufgewendet wurde.
Sie können das Gerenderte Ereignis verwenden, um die Framedauer und die Reaktionsfähigkeit der Anwendung zur Laufzeit zu messen, ohne dass Visual Studio oder ein Debugger angefügt ist. Dies kann beispielsweise verwendet werden, um Telemetriedaten für Apps zu generieren, nachdem sie bereitgestellt wurden, oder um den Umfang der benutzerdefinierten DirectX-Renderingarbeit anzupassen, die eine Anwendung für jeden Frame ausführt.
Eine längere Framedauer bedeutet, dass Ihre App mehr Arbeit ausführen musste, bevor ein Frame gerendert werden konnte. Framedauern, die länger als ca. 16 Millisekunden sind, bedeuten, dass Ihre Anwendung nicht mit der empfohlenen Häufigkeit von 60 Frames pro Sekunde aktualisiert werden kann, sodass der Benutzer möglicherweise eine spürbare Verzögerung bei der Reaktionsfähigkeit der Benutzeroberfläche feststellen kann.
Wenn lange Framedauern angezeigt werden, sollten Sie die Profilerstellung Ihrer Anwendung mithilfe der Visual Studio-Anwendungszeitachse in Betracht ziehen und die empfohlenen bewährten Methoden für die Leistung implementieren.
Handler für Gerendert werden im UI-Thread ausgeführt, obwohl sie nicht an ein bestimmtes UI-Element gebunden sind. Es ist eine gute Idee, alle gerenderten Handler zu entfernen, wenn Sie sie nicht mehr benötigen, und sie nur dann hinzuzufügen, wenn Sie sie benötigen.