1

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

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

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

请帮助,提前谢谢。

4

3 回答 3

1

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

于 2012-09-17T05:51:48.660 回答
1

SO有很多关于它的数据:

如何从 C# 中的另一个线程更新 GUI?

在线程中访问 UI

调用任何跨线程代码的最佳方式?

你可以找到更多。

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

于 2012-09-17T05:53:23.953 回答
0

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

于 2012-09-17T05:54:13.103 回答