同时显示表单并在背景上获取数据

时间:2013-01-24 05:24:00

标签: c# winforms multithreading forms backgroundworker

我正在开发一个适用于数据库的winforms应用程序,90%的表单需要从Form_Load的数据库加载一些初始数据。

我被告知使用线程来显示表单,然后去获取数据并用数据填充表单,否则客户无法看到表单,直到邮递员进入数据库并返回数据:)

我以前用线程完成了一些简单的任务,但这种情况对我来说有点混乱。我有一个mainForm是MdiParent,其他形式是MdiChild,如下所示:

ChildForm child = new ChildForm { MdiParent = Program.mainForm };

和我的mainForm(MdiParent中的Program.cs是静态的)

我不知道是否应该使用ThreadBackgroundWorker?其他方案?

如果您的回复可以帮助我完成这个案例并赋予我不完整的知识,那么我会非常高兴。感谢。

1 个答案:

答案 0 :(得分:1)

使用BackgroundWorker是最简单的方法。它处理线程问题,捕获异常并在UI线程上运行工作完成回调。

如果您使用的是C#4.5,那么await / asych也是一种很好的方法。