Запуск формы ожидания в отдельном потоке (Winforms)

У меня создается форма ожидания в отдельном потоке во время длительных операции, просто для демонстрации с полосой загрузки. И по истечению выполнения операции закрывается.

Всё отлично работает но время от времени блокируется до момента закрытия приложения. Как правильно реализовать форму ожидания?

Для открытия реализовано следующим образом:

public void ShowWaitDialog(string message)
{
     _thread = new Thread(() =>
     {
          _waitForm = new WaitForm(this, message);
          _waitForm.ShowDialog();
     });

     _thread.Start();
}

Для закрытия:

public void CloseWaitDialog()
{
     if (_waitForm != null)
     {
         _waitForm.Invoke(new Action(_waitForm.Close));
         _waitForm = null;
     }
}

Ответы (0 шт):