스택 오버플로와 관련하여 많은 질문이 있지만, 대용량의 데이터를 화면에 그리는 가장 효과적인 방법 중 하나는 WriteableBitmap API를 사용하는 것입니다. codeplex의 WriteableBitmapEx 오픈 소스 프로젝트를 살펴 보는 것이 좋습니다. 공개, 이건 한 번 기여했지만 내 라이브러리가 아니야.
DrawingVisual, StreamGeometry, OnRender, Canvas로 실험 해 본 결과, 1,000 개 이상의 "객체"를 화면에 그려야 만 이러한 모든 작업이 넘어집니다. 캔버스의 가상화를 다루는 기법 (가상화된 캔버스의 경우 million items demo이 있음)에도 불구하고 천천히 내려 가기 전에 한 번에 볼 수있는 ~ 1000으로 제한됩니다. WriteableBitmap을 사용하면 비트 맵에 직접 액세스하여 그 (oldskool 스타일)을 그리면 수만 개의 객체를 신속하게 그릴 수 있습니다. 자신 만의 최적화 (멀티 스레딩, 세부 수준)를 자유롭게 구현할 수 있지만 해당 API에 대한 많은 만족을 얻지는 못합니다. 말 그대로 당신 스스로 일을하고 있습니다.
하나의주의 사항이 있습니다. WPF는 렌더링을 위해 GPU/테셀레이션에 CPU를 사용하지만 WriteableBitmap은 모든 것을 위해 CPU를 사용합니다. 따라서 채우기 속도 (프레임 당 렌더링되는 픽셀 수)가 CPU 성능에 따라 병목 현상이됩니다.
성능 렌더링이 정말로 필요한 경우, SharpDX (Managed DirectX)과 WPF를 사용한 interop을 살펴 보는 것이 좋습니다. 이렇게하면 GPU를 직접 사용하므로 최고의 성능을 얻을 수 있습니다. 시각적 당 렌더링 몇 가지 세부 사항과 많은 작은 DrawingVisuals를 사용
안부,
[Microsoft Deep Zoom] (http://msdn.microsoft.com/en-us/library/cc645050 (v = v1) .aspx) – Ray