1、操作:UI线程修改数据后重新绑定dgv,一个后台线程定时刷新dgv(因为多个程序修改该表)
2、异常:DataGridView绑定Ilist对象,出现IndexOutOfRangeException错误的解决方法
3、解决办法:把读取数据和绑定数据源作为一个原子操作
private delegate void SetDgvDelegate(); /// <summary> /// 跨线程访问dgv /// </summary> private void SetDgv() { if (dgv.InvokeRequired) { SetDgvDelegate handler = SetDgv; dgv.Invoke(handler); } else { lock (dgv) { dgv.DataSource = emptyCollection; dgv.DataSource = common.GetDetail(tableNum, out tableName); dgv.ClearSelection();//清空选择行 } } }