c # форма окна не отвечает на действие щелчка - PullRequest
2 голосов
/ 10 июня 2011

У меня есть проект WindowsForm, в котором выполняются два объекта BackgroundWorker для проверки необходимости сбора данных и их сбора.Кажется, они работают нормально, но когда я добавляю функциональность для просмотра собранных данных, форма останавливается при попытке отобразить доступные данные.

При нажатии первой кнопки данные отображаются в новом окне формы со списками.В этом новом окне у меня есть еще одна кнопка для отображения данных, если все в порядке.

Здесь весь проект зависает.Я попытался вместо мягкого копирования ссылки на класс, которую я передаю в новую форму, создать новый объект в конструкторе.И пока сбор данных BackgroundWorker не запущен, он работает нормально.Когда происходит сбор, нажатие на кнопку графика замораживает форму, кнопка отображения данных работает просто отлично.

private void wellStatusButton1_Click(object sender, EventArgs e)
{
     try
     {
        ListDataForm temp = new ListDataForm(tubes[0], 1);
        temp.ShowDialog();
     }
     catch (Exception ex)
     {
        MessageBox.Show(ex.Message);
     }
  }

private void plotDataButton_Click(object sender, EventArgs e)
{
     try
     {
        GraphForm plotData = new GraphForm(at);
        plotData.ShowDialog();
     }
     catch (Exception ex)
     {
        MessageBox.Show(ex.Message);
     }
}

1 Ответ

0 голосов
/ 10 июня 2011

Трудно получить много информации по вашему вопросу, но одна вещь, которая может быть вам полезна, заключается в следующем: когда программа для Windows делает что-то еще в фоновом режиме, обычно пользовательский интерфейс может быть заморожен.Вы можете периодически использовать: Application.DoEvents (), что позволит интерфейсу выглядеть более отзывчивым.

...