我必须使用线程和后台工作程序在后台运行进程。这个过程做了从数据库中检索数据的任务,它成功检索我无法将数据显示到datagridview中,有一些数据错误事件。
答案 0 :(得分:3)
BackgroundWorker有一个内置的RunWorkerCompleted
回调方法,你可以将其连接到它,并自动处理跨线程编组到UI线程。在致电RunWorkerAsync
之前,您可以加入RunWorkerCompleted
活动。
backgroundWorker1.RunWorkerCompleted +=
new RunWorkerCompletedEventHandler(
backgroundWorker1_RunWorkerCompleted);
在backgroundWorker1_RunWorkerCompleted
中,您可以绑定网格或将DataSource属性设置为DataTable,它将位于UI线程上。
如果您已经完成此操作并且收到错误,那么它可能只是DoWork /线程代码本身中未处理的异常。如果是这种情况,请在try catch中包裹RunWorkerAsync
调用,看看你得到了什么。
希望有帮助...
答案 1 :(得分:-2)
可能是您无法修改DataGridView控件。 组 CheckForCrossThreadcalls = false ,它可能有用