求助:MSChart动态监控随着时间速度会变慢,如何解决?
井底蛙 2014-12-05 09:16:16 向各位大哥求助,小弟使用.net3.5 (c#)做了一个监控应用程序,监控数据的变化。做法是定时0.5秒读一次数据,放入datatable中,datagridview的datasource是datatable,用于列表显示数据,同时,使用mschart曲线动态显示数据。
刚运行,CPU占用率低,定时0.5秒读一次,曲线滚动一次,但当数据量越来越大的时候,比如大于5个小时以上,timer会变慢,大约1s才读一次,曲线滚动一点。监控10小时以上时,CPU占用率达到了50%。
点的位置:有两种方式滚动,
1.chart1.ChartArea[0].AxisX.ScaleView.Position = totalcount - chart1.ChartArea[0].AxisX.ScaleView.size;
2. chart1.ChartArea[0].AxisX.ScaleView.Scroll(ScrollType.Last);
这两种方式都试过,都会出现这种情况。
数据填入方式是:
//新行
DataRow dr = datatable.NewRow();
//读数据
buffer = readData();
//填数据
dr[0] =buffer[0];
chart1.Series["d01"].Points.AddXY(totalcount, dr[0]);
dr[1] =buffer[1];
chart1.Series["d02"].Points.AddXY(totalcount, dr[1]);
......
//增行
datatable.Rows.Add(dr);