다음을 통해 공유


CompositionTarget.Rendered 이벤트

정의

코어 렌더링 프로세스가 프레임을 렌더링한 직후에 발생합니다. 이 이벤트를 사용하면 각 프레임이 렌더링하는 데 걸리는 시간을 결정할 수 있습니다.

// 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 */ }
Microsoft.UI.Xaml.Media.CompositionTarget.addEventListener("rendered", onRendered);
Microsoft.UI.Xaml.Media.CompositionTarget.removeEventListener("rendered", onRendered);
- or -
Microsoft.UI.Xaml.Media.CompositionTarget.onrendered = onRendered;
Public Shared Custom Event Rendered As EventHandler(Of RenderedEventArgs) 

이벤트 유형

설명

애플리케이션을 개발하고 테스트할 때 Visual Studio 애플리케이션 타임라인 프로파일러를 사용하는 것이 좋습니다. UI 프레임을 준비하는 데 소요된 시간을 포함하여 애플리케이션의 리소스 소비에 대한 자세한 정보를 제공합니다.

Rendered 이벤트를 사용하여 Visual Studio 또는 디버거를 연결하지 않고 런타임에 프레임 기간 및 애플리케이션 응답성을 측정할 수 있습니다. 예를 들어 배포 후 앱에 대한 원격 분석을 생성하거나 애플리케이션이 각 프레임에서 수행하는 사용자 지정 DirectX 렌더링 작업의 양을 조정하는 데 사용할 수 있습니다.

프레임 기간이 길다는 것은 프레임을 렌더링하기 전에 앱이 더 많은 작업을 수행해야 했음을 의미합니다. 프레임 기간이 약 16밀리초보다 길면 애플리케이션이 초당 60프레임을 권장하는 빈도로 업데이트할 수 없으므로 사용자가 UI 응답성이 눈에 띄게 지연될 수 있습니다.

프레임 기간이 길어지면 Visual Studio 애플리케이션 타임라인을 사용하여 애플리케이션을 프로파일링하고 권장 되는 성능 모범 사례를 구현하는 것이 좋습니다.

렌더링된 처리기는 특정 UI 요소에 연결되지 않더라도 UI 스레드에서 실행됩니다. 더 이상 필요하지 않을 때 렌더링된 처리기를 제거하고 필요한 경우에만 추가하는 것이 좋습니다.

적용 대상