C#关于在使用多线程编程时,利用委托来操作控件,提示未将对象引用设置到对象实例
以下是部分代码:newThread((ThreadStart)(delegate(){dataGridView1.Invoke((MethodInvoker)delega...
以下是部分代码:
new Thread((ThreadStart)(delegate()
{
dataGridView1.Invoke((MethodInvoker)delegate
{
foreach (DataGridViewRow item in dataGridView1.Rows)
{
item.Cells[MACNum].Value = CPDM;
item.Cells[MACNum + 1].Value = Version;
item.Cells[MACNum + 2].Value = SCRQ;
item.Cells[MACNum + 3].Value = fgbs;
//To generate 6 bits string,add 0 if the length less than 6.
item.Cells[MACNum + 4].Value = Convert.ToString(string.Format("{0:D6}", CPLSH));
CPLSH++;
item.Cells[MACNum + 6].Value = model;
item.Cells[MACNum + 7].Value = Pack;
item.Cells[MACNum + 8].Value = Area;
}
});
}))
.Start();
请问下是什么原因。报错的部分就是对datagridview的所有操作。我点击中断,软件就自动退出了了,没法观察到具体原因。我看微软关于对MethodInvoker 的介绍是这么操作的啊。求指点。 展开
new Thread((ThreadStart)(delegate()
{
dataGridView1.Invoke((MethodInvoker)delegate
{
foreach (DataGridViewRow item in dataGridView1.Rows)
{
item.Cells[MACNum].Value = CPDM;
item.Cells[MACNum + 1].Value = Version;
item.Cells[MACNum + 2].Value = SCRQ;
item.Cells[MACNum + 3].Value = fgbs;
//To generate 6 bits string,add 0 if the length less than 6.
item.Cells[MACNum + 4].Value = Convert.ToString(string.Format("{0:D6}", CPLSH));
CPLSH++;
item.Cells[MACNum + 6].Value = model;
item.Cells[MACNum + 7].Value = Pack;
item.Cells[MACNum + 8].Value = Area;
}
});
}))
.Start();
请问下是什么原因。报错的部分就是对datagridview的所有操作。我点击中断,软件就自动退出了了,没法观察到具体原因。我看微软关于对MethodInvoker 的介绍是这么操作的啊。求指点。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询