Я пробовал с фоновым рабочим. Когда вызывается функция с загрузкой данных базы данных, я также вызываю 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 - это моя глобальная переменная формы, когда я пишу так, я получаю ошибку, что не могу закрыть форму, которая была открыта в другом потоке. Так что я делаю не так.