I have an application that generates a lot of data at 60 Hz and I have used a timer to update the chart at a periodic rate. I'd like to show maybe the last hour of data on a chart, but I understand the chart slows down after say 10,000 pts. One thing I would like to do is add points in a batch, but not have the chart update after every point is added. Is there any way to turn off the updates, add points to the series, then cause a refresh to occur. This is what I am currently doing in my timer_Tick() function:
private void timer1_Tick(object sender, EventArgs e)
{
NumericTimeSeries series = this.ultraChart1.Series[0] as NumericTimeSeries;
NumericTimeDataPoint dataPoint = new NumericTimeDataPoint(this.dataListX[index], this.dataListY[index], this.dataListX[index].ToString(), false);
series.Points.Add(dataPoint);
index++;
}
this.ultraChart1.Axis.X.TickmarkInterval = series.Points.Count / maxLabels;
You can try using:
series.SetNoUpdate(true|false);
I've tried using that also. I wasn't sure if that was doing what I hoped it would. Anyway, it did not seem to have an effect. I think the rendering time for 10,000+ points is just too long. I'm not sure if anyone has any timing info, but that seems to be the bottleneck. I may just have to lower my update rate in the timer to fit within the chart's rendering time.
thanks
Also you can try disabling the tooltips:
this.ultraChart1.Tooltips.Display = TooltipDisplay.Never;
This can improve the performance a little.