代码之家  ›  专栏  ›  技术社区  ›  Shax

在哪里实现BackgroundWorker。Winforms c#

  •  1
  • Shax  · 技术社区  · 14 年前

    我使用DevExpress xtratreList创建了一个用户控件。基本上在这个用户控件中,我使用的是库存项。超过30000。现在,当我在类型化数据集中加载完整的表时,几乎需要6-8秒。

    构建用户控件的目的是可重用性。以便我们可以在应用程序的其他部分使用它。

    现在我在一个Winform中使用这个UserControl,这个UserControl放在表单的左侧,它将被用作菜单。假设用户通过展开节点来单击其所需的项,当选择节点时,将获取其进一步的详细信息并显示在“发件人”中。到现在为止,一直都还不错。

    为了纠正这个问题,我试图实现后台工作线程,但有点困惑,我应该在哪里实现后台工作线程。在用户控件或窗体中。

    如果我在UserControl中实现了后台worder,那么我如何访问这个BackgroundWorker线程,并在主窗体上执行它,在主窗体中将左侧的UserControl用作菜单。实际上,我想要的是当用户点击按钮控件并加载表单时,它应该在2秒内加载为flash或max….请帮助。。。。执行它。

    如果有人发现任何困难请告诉我。。。。

    当做,

    2 回复  |  直到 14 年前
        1
  •  2
  •   Henk Holterman    14 年前

    您不必“访问这个BackgroundWorker线程并在主窗体上执行它”。

    但数据加载速度不会更快,只会解冻主GUI。

        2
  •  1
  •   Chris Laplante    14 年前

    如果延迟是由加载树的代码引起的,那么应该“线程化”该部分。我建议你简单地读一下C的这一章: http://www.albahari.com/threading/