多线程+datagridview的问题
看代码
测试代码1:在datagridview里输出一个 1*10的数组,值为1~10.
private void fuc()
{
char[] tmpValue = "1,2,3,4,5,6,7,8,9,10".ToCharArray();
string[] strs = (new string(tmpValue)).Split(',');
DataTable dt = new DataTable("Data");
DataRow dr;
dr = dt.NewRow();
for (int j = 0; j < strs.Length; j++)
{
dt.Columns.Add(new DataColumn(((char)('A' + j)).ToString(), typeof(double)));
dr[j] = strs[j];
}
dt.Rows.Add(dr);
dataGridView1.DataSource = dt;
}
代码2:作用是 单击button2按钮,进行显示fuc操作。这个没有问题。(多次操作也没有问题)
private void button2_Click(object sender, EventArgs e)
{
fuc();
}
代码3:
问题来了,当我用多线程调用fuc()函数的时候就会出现:第一次操作没有问题,但是点击第二次(包括第三第四……次)时就会提示错误。(错误已经在下面贴出)。
private void button1_Click(object sender, EventArgs e)
{
//MessageBox.Show("xx");//此时如果我将这段代码不注销,这个错误只是偶尔会出现。
Thread thread = new Thread(fuc);
thread.Start();
}
错误提示:
有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。
************** 异常文本 **************
System.NullReferenceException:
未将对象引用设置到对象的实例。
在 System.Windows.Forms.DataGridViewTextBoxCell.PaintPrivate(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, Int32 rowIndex, DataGridViewElementStates cellState, Object formattedValue, String errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts, Boolean computeContentBounds, Boolean computeErrorIconBounds, Boolean paint)
在 System.Windows.Forms.DataGridViewTextBoxCell.Paint(Gr