使用BackgroundWorker获取数据

时间:2014-02-26 16:46:23

标签: vb.net winforms

我使用数据源选项卡将数据库中的某些字段拖放到表单上。这创建了所需的文本框/字段/设计器组件,并且默认情况下也创建了一个填充命令,这是预期的。

在我的表单加载事件中,发生以下命令:

  Me.TblQueueTableAdapter.dt_FillIncompleteCases(Me.BE_DataSet.tblQueue)

此命令可能需要一段时间才能填写最终用户的PC。我想在检索数据的同时显示一些内容,所以我添加了一个新的无边框表单,它将在填充事件之前显示,然后在完成后隐藏。

所以问题就在于主线程由于上面的数据库填充代码而被阻塞,而我的主线程将不会显示无边框形式。显示和隐藏工作的过程,但由于线程被阻塞,无边框表单的内容为空白。我需要阻止主线程阻塞。

我知道我可以使用后台工作程序从数据库中获取这些数据。我可以实例化一个新的表适配器并在do work事件中使用fill命令。如果我这样做,我可以通过e.result通过数据表,但我不知道如何将数据表设置为我的设计器控件。我该怎么做?

在run worker completed事件中,我想象了一下:

 Me.BE_DataSet.tblQueueDataTable = e.result

但这是一种类型,不能以这种方式设置。我需要做什么?

0 个答案:

没有答案