在开线程时如果有跨线程执行事件时会报错 解决方法有以下三种
方案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这是要跨线程事件 } }