2009-08-21 3 views
0

저는 미디어 요소와 WPF TeeChart (Steema가 사용)를 사용하여 WPF에서 작업하고 있습니다. 이 둘은 동시에 표시되고 동시에 업데이트됩니다 - 비디오가 재생되는 동안 그래프는 비디오의 현재 위치와 관련된 데이터를 표시하기 위해 정기적 인 간격으로 업데이트됩니다.멀티 스레드 TeeChart 및 미디어 요소

TeeChart가 업데이트하는 데 오랜 시간이 걸리므로 비디오가 차단되어 재생이 번쩍 거립니다.

나는이 문제에 대한 해결책을 찾기 위해 멀티 스레딩을 약간 실험했지만 지금까지는 운이 없었습니다. 사실 WPF가 모든 WPF 요소가 항상 함께 그려지는 방식으로 작동한다고 의심 할 때 비디오 나 차트가 업데이트 될 때 지시 할 수 없습니다.

누구든지 내가이 문제를 해결하기 위해 할 수있는 일을 생각할 수 있습니까? 현재 내가 생각할 수있는 것은 이러한 요소 중 하나 또는 둘 모두를 Win32와 동등하게 바꾸고 적절하게 호스팅하는 것입니다. 그러나 여러 가지 이유로이 문제를 최후의 수단으로 남겨 두었습니다.

답변

1

그냥 경우에 당신은 여전히 ​​문제가 해결되지 않았거나 향후 참조를 위해, 당신은 여기 기사 "차트 실시간"에서 설명한대로의 TeeChart의 성능을 최적화 할 수 있습니다

http://www.teechart.net/reference/articles/index.php

이가이다 TeeChart VCL 기사가 있지만 대부분 TeeChart for .NET에도 적용됩니다.

TeeChart for .NET은 스레드로부터 안전하지 않습니다. 차트에 페인트 할 충분한 시간을 주어야합니다. 수면 호출을 사용하여 주어진 시간에 차트 그림이 완료되도록하거나 AutoRepaint 속성과 함께 비동기 그림 기법을 사용합니다 (예 :

tChart1.AutoRepaint = false; 
Random r = new Random(); 
for(int i = 0; i <500; i++) 
{ 
     tChart1[0].Add (i,r.Next(800),Color.Blue); 
} 
tChart1.AutoRepaint = true; 
tChart1.Refresh(); 
).