我使用的是for循环但也出现集合已修改;可能无法执行枚举操作

我在串口接收的模块里面用for循环写了在chart里绘制曲线的代码

        private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
//这边的changdu是我代码中的一个数组的长度,我想用遍历数组来输出曲线
            for(int k=changdu; k>=1;k--)
            {
                chart1.Series[0].Points.AddXY(k, file[k - 1]);
                chart1.Series[0].BorderWidth = 2;
                chart1.Series[0].Color = Color.Blue;
                chart1.ChartAreas[0].AxisX.Title = "道址";
                chart1.ChartAreas[0].AxisY.Title = "计数率";
            }
       }

但遇到了集合已修改;可能无法执行枚举操作的错误

提示错误的地方是哪一句代码。
有没有别的线程,主线程关闭但是别的线程调用就会出现这个错误。

遇到问题,第一件事是先定位
找到到底哪一行代码出错
把怀疑出错的代码行加上try,在catch里设置断点,然后逐步缩小范围,直到能够定位到出错的那一行
你这胡乱找段代码出来就说是它出错,有可能白费功夫
此外,chart1.Series[0].Points本身也是个集合,报错也不是说一定是数组报错