日期:2014-05-17  浏览次数:21280 次

7天了!快崩溃了!关于datagridview控件“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”错误求解?
就几行代码:
具体如下:

 public void query()
        {
            StreamReader Sreader = new StreamReader(openFileDialog.FileName.ToString(), Encoding.Default);
            string strline = string.Empty;
            while ((strline = Sreader.ReadLine()) != null)
            {
                dataGridView.Rows.Add();
                dataGridView.Rows[i].Cells[1].Value = strline.ToString();
            }
        }

        private void input_button_Click(object sender, EventArgs e)
        {
           i = -1;
           openFileDialog.ShowDialog();
           dataGridView.Rows.Clear();
           Thread querythread = new Thread(query);
           Control.CheckForIllegalCrossThreadCalls = false;
           querythread.Start();
        }

代码做了简化,去掉了无用的美化的代码!
具体情况如下:
1.小弟想编写一个应用程序,可以把tet文本文档中的每一行的数据采用线程的方式读取到datagridview控件中!这就是这个程序的目的!
2.现在出现的问题是:调试程序的时候,出现如下图的错误:

“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”
“System.AccessViolationException”类型的未经处理的异常出现在 System.Windows.Forms.dll 中。
已经7天了,就是找不出错误!
求各位高手指点指点呀!

一个很重要的特征就是,在datagridview控件中,都是在刚刚读满的时候出现这种错误信息的:如下图”
datagridview 内存 控件 应用程序 异常

------解决方案--------------------
而且  Sreader 也没关闭