2009-08-21 9 views
0

私は、Media ElementとWPF TeeChart(Steema製)を使用してWPFで作業しています。これらの両方が同時に表示され、更新されます。動画が再生されている間、グラフは定期的に更新され、動画の現在の場所に関連するデータを表示します。マルチスレッドTeeChart&Media Element

問題は、TeeChartが更新に時間がかかり、ビデオをブロックして再生がぎくしゃくしてしまうことです。

私はこれを解決するためにマルチスレッドを少し試しましたが、これまで運がなかったのです。実際にはWPFがWPFの要素が常に一緒に描画されるような方法で動作すると思われます。

誰でも私がこの問題を解決するために何かできると思いますか?現時点では、これらの要素の1つまたは両方をWin32に相当するものに置き換えて適切にホスティングすることは考えられますが、私はこれを最後の手段として残しています。

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

これはです:あなたはまだその問題を解決していないか、ここでは「リアルタイムグラフ作成」の記事で説明したように、将来の参考のために、あなたはTeeChartのパフォーマンスを最適化することができます念の

答えて

1

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();