我正在编写一个可能需要相当长的加载时间(5-30 秒)的程序。我想要一个以选取框样式进度条开头的表单,以便用户知道正在做某事。
public FrmMain()
{
var loading = new FrmLoading();
loading.Show();
InitializeComponent();
// other start up code here
loading.Close()
}
现在,loading
弹出就好了。问题是标签和进度条什么都没有显示,而且看起来它们几乎要崩溃了。我已经研究过BackgroundWorker
,但是,老实说,我并不完全理解如何使它为我工作。我尝试按照以下教程和示例进行操作:
但我的头就是没有抓住它。有没有其他方法可以让表单正确加载?感谢您的任何帮助。
编辑
我的BackgroundWorker
尝试包括创建一个函数,该函数执行我在FrmMain
. 所以,我有:
public FrmMain()
{
Loading = new FrmLoading();
Loading.Show();
backgroundWorker1.RunWorkerAsync();
}
private void FormLoading()
{
// Initialize and loading elements of the form
InitializeComponent();
}
private void BackgroundWorker1DoWork(object sender, DoWorkEventArgs e)
{
FormLoading();
}
private void BackgroundWorker1RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Loading.Close();
}
但我一直NullReferenceException
在backgroundWorker1.RunWorkerAsync();