在开线程时如果有跨线程执行事件时会报错 解决方法有以下三种
方案1
this.BeginInvoke((EventHandler)(delegate { dataGridView1.DataSource = dt; }));// dataGridView1.DataSource = dt这是要跨线程事件
方案2
Control.CheckForIllegalCrossThreadCalls = false;//在初始化构造方法里面加这个,取消所有跨线程限制
方案3
public delegate void OutDelegate(string path);
private void DataFill(string path)
{
if (this.InvokeRequired)
{
OutDelegate outDalegate = new OutDelegate(DataFill);
this.Invoke(outDalegate, new object[] { path });
}
else
{
dataGridView1.DataSource = dt;// dataGridView1.DataSource = dt这是要跨线程事件
}
}