我正在開發一個應用程序,其中有4個fastlines的最小一個tchart。每個快速線在不同情況下包含不同的樣本編號,最多隻有16個。這是現在的問題。如果我的樣本數量少於200-250。那麼我可以看到圖形正在被實時繪製。現在隨着樣本數量的增加,繪製圖形的延遲時間變得非常漫長。所以我們假設我們每個fasline有1000個樣本,那麼圖表中總共有4000個樣本。最多可以有16個圖表。我注意到延遲很大程度上取決於fastline包含的樣本數量和圖表中的快速線數量。 我已經對autorepaint = false進行了更改。我有chart1.autorepaint = false series1.autorepaint = false,也是系列2,3,4。每次我在fastline添加一個值,我不得不手動做chart1.refresh(),它需要很多時間,因爲它刷新其中的所有4條快速線。 延遲也可能與series1.add(), 有關,但我不確定。 有什麼我可以做,以避免延誤?如何提高Tchart在實時繪圖中的性能?
這是我使用的代碼。
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
,但沒有成功。
我也試過做series4.repaint()而不是做整個chart1.refresh()但沒有輸出! –