私は、4 つの fastlines を持つ tchart が 1 つ以上あるアプリケーションを開発しています。tcharts の最大数は、いくつかの基準に応じて 16 です。各 fastline には、さまざまなケースでさまざまなサンプル数が含まれています。ここが今の問題です。サンプル数が 200 ~ 250 未満の場合。次に、グラフがリアルタイムでプロットされていることがわかります。サンプル数が増加すると、グラフをプロットする際の遅延が非常に長くなります。各ファスラインに 1000 個のサンプルがある場合、チャートには合計 4000 個のサンプルがあるとします。このようなグラフは最大 16 個まで作成できます。遅延は、ファストラインに含まれるサンプル数とチャート内のファストラインの数に大きく依存していることに気付きました。autorepaint = false に関しては既に変更を加えています。chart1.autorepaint = false series1.autorepaint = false と series 2 、 3 、 4 があります。 fastline に値を追加するたびに、chart1.refresh() を手動で実行する必要があります。これには、4 つの fastlines すべてが更新されるため、非常に時間がかかります。遅延は series1.add() にも関連している可能性がありますが、よくわかりません。遅延を避けるためにできることはありますか?
これが私が使用しているコードです。
public void PlotActualValuesUpToSampleNumber(int SampleNumber)
{
int DataPoint;
Chart1.AutoRepaint = false;
for (DataPoint = LastActualSamplePlotted + 1; DataPoint <= SampleNumber; DataPoint ++ )
{
if (Imp.ThisSampleContainsFault[ChannelNumber, DataPoint])
{
Chart1.Panel.Gradient.Visible = false;
Chart1.Panel.Color = Imp.ChartBackgroundColorIfFault;
}
Series4.Add(Imp.ActualValue[ChannelNumber, DataPoint], "", Color.Yellow);
LastActualSamplePlotted ++;
}
Chart1.Refresh();
Chart1.AutoRepaint = true;
}
遅延を回避するためにできることはありますか? 私はすでにこれらのリンクを参照しました。 http://www.teechart.net/reference/articles/VCLRealtime.htm http://www.teechart.net/support/viewtopic.php?p=47388 http://www.teechart.net/support/viewtopic. php?t=5127 http://stackoverflow.com/questions/11977423/performance-issue-with-tchart
しかし、成功しません。