Есть форма, открытая в новом потоке, а так же метод, содержимое которого тоже выполняется в новом потоке.
По окончании действия метода (там находится цикл) нужно отобразить другую форму (она является реализацией кастомного messagebox-а) и закрыть текущую форму.
Я пытаюсь сделать так:
else if (ex.Message.Contains("Unknown"))
{
try
{
Invoke(new Action(() => this.Close()));
}
catch
{
}
FlatMessageBox.ShowBox("К сожалению, Вы не можете добавлять больше друзей за один день. Пожалуйста, попробуйте завтра.");
break;
}
И этот код работает, но не так, как мне хотелось бы. Без try-catch я получаю ошибку "Невозможно вызвать Invoke или BeginInvoke для элемента управления до завершения создания дескриптора окна".
Так же, если не сделать break, форма с сообщением открывается несколько раз.
Нужна правильная реализация, что то вроде:
this.Close;
FlatMessageBox.ShowBox("лалала");
Такой код работал до того, как я начал вызывать форму и её методы в отдельных потоках.