2010-02-04 63 views
-2

我必须使用线程和后台工作程序在后台运行进程。这个过程执行从数据库中检索数据的任务,它通过我无法将数据显示到datagridview中成功检索,还有一些数据错误事件。如何在.net中使用c在后台运行进程#

+1

你会得到什么异常信息? – Kane 2010-02-04 06:44:07

+1

@haresh chande:你应该做的第一件事是搜索SO和elesewhere并比较如何使用backgroundworker类的例子... – 2010-02-04 06:46:11

+0

你正在使用哪个框架? – karthik 2010-02-04 06:46:18

回答

-2

可能是您无法修改DataGridView控件。 设置 CheckForCrossThreadcalls =假 ,它可以工作

+3

这不是很好的建议。这个设置是为了提醒开发者他们做错了什么。你推荐的东西基本上和告诉某人他们的烟雾探测器是否熄灭,然后把电池拿回去睡觉一样。 – Josh 2010-02-04 06:50:27

+2

......当然没有那种ble peaceful的和平...... – 2010-02-04 07:02:08

3

BackgroundWorker的有一个内置的的RunWorkerCompleted回调方法,你的铁丝插入,它会自动处理横线编组到UI线程。在致电RunWorkerAsync之前,您可以连线到RunWorkerCompleted事件。

backgroundWorker1.RunWorkerCompleted += 
       new RunWorkerCompletedEventHandler(
      backgroundWorker1_RunWorkerCompleted); 

backgroundWorker1_RunWorkerCompleted可以绑定网格或DataSource属性设置为数据表,这将是在UI线程上。

如果您已经完成此操作并且出现错误,那么它可能只是DoWork /线程代码本身内的一个未处理的异常。如果是这种情况,请尝试将RunWorkerAsync调用包装起来,看看你得到了什么。

希望有帮助...

+0

+1 sadboy。 加不要忘记与gui同步。 – ChrisBD 2010-02-04 08:25:16