Problem Statement
Clearing data points in MSChart is known to be very slow.http://connect.microsoft.com/VisualStudio/feedback/details/596212/performance-problem-in-mschart-datapointcollection-clear
Solution
However, there is a work around for this problem.Suggested work around from link stated above is as below:
public void ClearPointsQuick()
{
Points.SuspendUpdates();
while (Points.Count > 0)
Points.RemoveAt(Points.Count - 1);
Points.ResumeUpdates();
Points.Clear(); //NOTE 1
}
Extension method implementation is as below:internal static class MSChartExtension
{
public static void ClearPoints(this Series sender)
{
sender.Points.SuspendUpdates();
while (sender.Points.Count > 0)
sender.Points.RemoveAt(sender.Points.Count - 1);
sender.Points.ResumeUpdates();
sender.Points.Clear(); //NOTE 1
}
}
(NOTE 1) I added one additional line Points.Clear()at the end of the function to ensure the chart axis updated correctly on next plot. Without adding this line, I observed that previous axis settings will be used when plotting new data points right after calling ClearPoints().
See Also
MSChart Extension: An extension package for MSChart component which contains this fixes and others features.Revision History
31/03/2012: Added additional line to force axis update on next plot (NOTE 1).12/03/2012: Initial released.