Программное обеспечение работало быстро, диаграмма работала практически мгновенно.
Перезагрузил компьютер, снова открыл VS и запустил программу, и теперь она очень медленная, для отображения кривой требуется около 30 секунд.
Он всегда был в режиме отладки, поэтому он не связан со скоростью отладки / выпуска, код не изменился, и я использую chart.Series [x] .Points.DataBindXY для отображения около 1000 точек.
Похоже, что всплывающая подсказка является причиной замедления, однако раньше она использовалась таким же образом.
Установила бы среда IDE некоторое обновление, изменяющее поведение диаграммы ..?
void DisplayChartCurve()
{
chart.ChartAreas[0].AxisY2.Enabled = AxisEnabled.Auto;
chart.Series.Clear();
chart.Series.Add("Vis");
chart.Series[0].YAxisType = AxisType.Primary;
chart.Series[0].Points.DataBindXY(_vis.x, _vis.y);
chart.Series[0].ChartType = SeriesChartType.Line;
chart.Series.Add("Nir");
chart.Series[1].YAxisType = AxisType.Primary;
chart.Series[1].Points.DataBindXY(_nir.x, _nir.y);
chart.Series[1].ChartType = SeriesChartType.Line;
chart.Series.Add("Spectra");
chart.Series[1].YAxisType = AxisType.Primary;
chart.Series[2].Points.DataBindXY(_spectra.x, _spectra.y);
chart.Series[2].ChartType = SeriesChartType.Line;
chart.Series.Add("Am1.5");
chart.Series[1].YAxisType = AxisType.Primary;
chart.Series[3].Points.DataBindXY(_am15.x, _am15.y);
chart.Series[3].ChartType = SeriesChartType.Line;
chart.ChartAreas[0].AxisY.LabelStyle.Format = "";
chart.ChartAreas[0].AxisX.LabelStyle.Interval = 50;
chart.ChartAreas[0].AxisX.MajorGrid.Interval = 100;
chart.ChartAreas[0].AxisX.MinorGrid.Interval = 50;
chart.ChartAreas[0].AxisX.MinorGrid.LineDashStyle = ChartDashStyle.DashDot;
chart.ChartAreas[0].AxisX.MinorGrid.Enabled = true;
chart.ChartAreas[0].AxisX.MajorTickMark.Interval = 50;
chart.Series[0].ToolTip = "#SERIESNAME \r\n#VALX{D}nm \r\n#VALY{F2}";
chart.Series[1].ToolTip = "#SERIESNAME \r\n#VALX{D}nm \r\n#VALY{F2}";
chart.Series[2].ToolTip = "#SERIESNAME \r\n#VALX{D}nm \r\n#VALY{F2}";
chart.Series[3].ToolTip = "#SERIESNAME \r\n#VALX{D}nm \r\n#VALY{F2}";
//chart.ChartAreas[0].AxisX.Crossing = 0;
//chart.ChartAreas[0].AxisY.Crossing = 300;
chart.ChartAreas[0].AxisX.Minimum = 300;
chart.ChartAreas[0].AxisX.Maximum = 1255;
chart.ChartAreas[0].AxisY.Minimum = 0;
chart.ChartAreas[0].AxisX.RoundAxisValues();
showCurves();
chart.Series[0].IsVisibleInLegend = false;
chart.Series[1].IsVisibleInLegend = false;
chart.Series[2].IsVisibleInLegend = false;
chart.Series[3].IsVisibleInLegend = false;
}