c#Windows窗体无法响应单击动作

问题描述

| 我有一个“ 0”项目,该项目运行两个“ 1”对象,用于测试是否应该收集数据以及是否收集数据。这些似乎运行正常,但是当我添加功能来查看收集的数据时,在尝试对可用数据进行图形绘制时,表单冻结了。 单击第一个按钮时,数据将在带有列表框的新表单窗口中列出。在这个新窗口上,我还有另一个按钮,用于在看起来正常的情况下以图形方式绘制数据。 这是整个项目冻结的地方。我尝试过的方法不是软拷贝传递给新表单的类引用,而是在构造函数中创建一个新对象。只要数据收集“ 1”没有运行,就可以正常工作。进行收集时,单击“绘图”按钮将冻结表格,“数据显示”按钮可以正常工作。
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);
     }
}
    

解决方法

        很难从问题中获取很多信息,但是对您可能有用的一件事是:当Windows程序在后台执行其他操作时,通常UI可能会冻结。您可以尝试定期使用:Application.DoEvents(),这将使UI显得响应更快。