我尝试过后台工作者。当调用用于加载数据库数据的函数时,我也调用了backgroundworker,并且我想打开另一个具有进度栏的表单,当加载数据完成时,我想关闭该表单并让用户正常使用应用程序。我试过了
private void SearchBtn_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
//loading data
}
这是一个需要很长时间才能执行的函数,所以我叫后台工作器。
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
f.Show();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
f.Close();
}
f是我的表单全局变量,当我这样写时,出现错误,我无法关闭已在另一个线程中打开的表单。所以我做错了什么。