【问题标题】:WinForm: Loading form for InitializeComponent methodWinForm:为 InitializeComponent 方法加载表单
【发布时间】:2012-09-09 08:11:18
【问题描述】:

我们有一个用于指纹扫描的 Windows 窗体应用程序来保持时间,仅初始化指纹扫描控件需要太多时间,大​​约 5 到 10 分钟。所以我们需要创建一个加载表单,让用户知道应用程序没有挂起,他们需要等待,但是长时间运行的原因是在表单初始化的InitializeComponent()方法内部。

我的问题是,如何将 InitializeComponent() 方法移动到另一个线程,以便在初始化生物识别扫描仪控件所在的表单时显示加载表单,因为它在从另一个访问 UI 控件时会产生错误主线程以外的线程?

我的代码是 C#,Framework 2.0,在 Visual Studio 2008 中构建。

请帮忙,提前谢谢。

【问题讨论】:

    标签: c# winforms .net-2.0 biometrics


    【解决方案1】:

    您可以从可视化设计器中移除指纹扫描控件,并使用额外的后台线程从代码中创建此控件,并在此过程中写入进度信息。

    【讨论】:

      【解决方案2】:

      SO 有很多关于它的数据:

      How to update the GUI from another thread in C#?

      Accessing UI in a thread

      Best Way to Invoke Any Cross-Threaded Code?

      你可以找到更多。

      如果仍需要帮助,请发表评论。

      【讨论】:

      • 您提供的链接更多地用于更新其他线程中的 UI。但我的问题是 initializing 其他线程中的 UI。
      【解决方案3】:

      您可以在yourForm.designer.cs 中找到您的InitializeCompoent(); 方法,然后您可以从那里对其进行修改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-27
        • 2019-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多