Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Закрытие модальной формы в другом потоке


Автор: m9yt 19.4.2013, 15:50
Добрый день. Опишу суть проблемы:
Как можно закрыть форму, открытую вот таким образом? Форма создается для того, чтобы во время длительной операции отобразить некую анимацию (не спрашивайте, почему я не обрабатываю данные в отдельном потоке)
Код

private void StartThread()
{
    NewForm form = new NewForm();
    form.ShowDialog();
}

private void button1_Click(object sender, EventArgs e)
{
    Thread newThread = new Thread(StartThread);
    newThread.Start();
}

Пытался вызывать newThread.Abort(), но после нескольких запусков, бывает, вылетают исключения, связанные с прорисовкой интерфейса.
Нашел лишь 1 стабильный, но кривой выход - стартовать таймер в фоновой форме, внутри которого отслеживать изменение некоторой глобальной переменной, при изменении которой вызывать this.Close().
Есть еще идеи?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)