我们有一个用于指纹扫描的Windows窗体应用程序,用于保持时间,只需初始化指纹扫描控件>,需要花费大量时间,大约需要5到10分钟。因此,我们需要创建一个加载表单,以便用户知道应用程序不会挂起并且需要等待,但是长时间运行的过程的原因是在表单初始化的InitializeComponent()
方法内部。
我的问题是,如何将InitializeComponent()
方法移动到另一个线程,以便在初始化生物识别扫描仪控件所在的表单时显示加载表单,因为它在访问UI控件时会产生错误从主线程以外的另一个线程?
我的代码在C#,Framework 2.0中,在Visual Studio 2008中构建。
请提前帮助,谢谢。
答案 0 :(得分:1)
您可以从可视化设计器中删除指纹扫描的控件,并使用其他后台线程从代码创建此控件,并在此过程中编写进度信息。
答案 1 :(得分:1)
SO有很多关于它的数据:
How to update the GUI from another thread in C#?
Best Way to Invoke Any Cross-Threaded Code?
你可以找到更多。
如果仍需要帮助,请发表评论。
答案 2 :(得分:0)
您可以在InitializeCompoent();
中找到yourForm.designer.cs
方法,然后您可以修改它。