问题描述
privatevoidbackgroundWorker1_DoWork(objectsender,DoWorkEventArgse){try{//外层的委托this.Invoke(newMethodInvoker(delegate{//判断选中的tab页if(this.tabControl1.SelectedTab.Name=="tabPage1"){//内层的委托newMethodInvoker(delegate{BindGridUp(ds1,ds2);}));}if(this.tabControl1.SelectedTab.Name=="tabPage2"){this.Invoke(newMethodInvoker(delegate{BindGridRight(ds3);}));}}));}catch(Exceptionex){DataClass.UserFunc.WriteLog("压包错误!"+ex.Message);MessageBox.Show("报错:"+ex.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Error);}}以上的代码会影响我的进度条不显示,下面是我修改后的代码,没有在委托里继续使用委托//查询数据privatevoidbackgroundWorker1_DoWork(objectsender,DoWorkEventArgse){try{//外层委托不使用//this.Invoke(newMethodInvoker(delegate//{//间接的判断是哪个tab页被选中if(tabPage11==true){this.Invokeke(newMethodInvoker(delegate{BindGridUp(ds1,ds2);}));}if(tabPage22==true){this.Invoke(newMethodInvoker(delegate{BindGridRight(ds3);}));}//}));}catch(Exceptionex){DataClass.UserFunc.WriteLog("压包错误!"+ex.Message);MessageBox.Show("报错:"+ex.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Error);}}我的疑问就是为什么在线程里委托包含使用委托会影响到我的进度条???希望各位大哥大姐能指点指点
解决方案
解决方案二:
this.Invokeke(newMethodInvoker(delegate{BindGridUp(ds1,ds2);}));这会对?
解决方案三:
在线程里绑定数字要操作DGV不放里面会报错,这样写有什么问题吗?