我有一个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);
}
}
答案 0 :(得分:0)
很难从你的问题中获得太多信息,但有一件事可能对你有用:当一个Windows程序在后台做其他事情时,通常UI可能会被冻结。您可以定期尝试使用:Application.DoEvents(),这将使UI看起来更具响应性。