我正在开发一个应用程序,其中至少有一个 tchart 和 4 条快线。tcharts 的最大数量为 16,具体取决于几个标准。每条快线在不同情况下包含不同的样本数。这是现在的问题。如果我的样本数少于 200-250。然后我可以看到图表是实时绘制的。现在随着样本数量的增加,绘制图表的延迟会变得很长。因此,假设每个 fasline 有 1000 个样本,那么图表中总共有 4000 个样本。最多可以有 16 个这样的图表。我注意到延迟高度依赖于 fastline 包含的样本数量和图表中的 fastlines 数量。我已经对 autorepaint = false 进行了更改。我有 chart1.autorepaint = false series1.autorepaint = false 以及系列 2、3、4。每次我在 fastline 中添加一个值时,我必须手动执行chart1.refresh(),这又需要很长时间,因为它刷新了其中的所有4条快线。延迟也可能与 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
但没有成功。