2017-09-23 16 views
0

WPF의 스펙트럼 분석기에서 작업하고 있습니다. 막대는 격자에 포함 된 직사각형입니다. 128 개의 막대가 있으며 초당 약 31 번 업데이트됩니다. 이 프로그램은해야 할 일을 처리하는데, 유일한 문제는 CPU가 많이 무거워 보인다는 것입니다.WPF Rectangle 배열의 높이를 초당 31 번 효율적으로 업데이트합니다.

프로그램이 실행되는 동안 CPU는 ~ 30 % 였고 막대의 높이를 업데이트하여 코드가 그 원인인지 확인하는 코드를 제거하면 CPU가 0-5 %로 떨어졌습니다.

Grid에서 OnRender를 재정의하고 DrawingContext.DrawRectangle()을 사용하여 사각형을 그리고 타이머에서 격자를 무효화하려고 시도했지만 더 좋았습니다.

WPF에서 스펙트럼 분석기의 막대를 렌더링하는 더 좋은 방법이 있습니까?

+0

이 질문을 본 적 있으십니까? 'WritableBitmap' 또는 일반'Rectangle' 객체를 사용하고 있습니까? https://stackoverflow.com/questions/4447794/fast-drawing-lots-of-rectangles-one-at-a-time-in-wpf –

+0

'Rectangle' 개체를 사용하고 있습니다. 나는 그 질문을 살펴볼 것이고, WriteableBitmaps에 대한 많은 경험이 없다. –

답변

0

성능이 문제가되면 DirectX 장면을 호스트 할 수있는 D3DImage를 선택해야합니다. this을 확인하십시오.