为什么在c#winform

时间:2017-01-10 10:31:28

标签: c# winforms user-interface listbox

我有很多UI操作。我在表单上显示了一个沉重的实时图表和一个列表框以及其他控件。

现在我的问题是UI线程更新图表和列表框以及其他控件混乱,因为图表不断更新,列表框没有长时间更新。

要解决此问题,请在添加到列表框后添加以下行,我的问题已解决。

Listbox.update();

但我认为有一个很大的问题,我不知道这一点,我只是隐藏了这个问题。

总结为什么以草率或无序的方式更新表单控件?

1 个答案:

答案 0 :(得分:0)

在这种情况下,在您完成繁重操作之前,UI上的任何组件都不会更新。我假设你有这样的代码:

public protected doSomeThing(Sender e, Evets args)
{
   ...
   Listbox.update();
   HeavyOperations();
   ...
}

在HeavyOperations()完成之前,您的列表框不会更新。因此,您必须在不同的线程上运行HeavyOperations()。

看看这个:Threading in Windows Forms 阅读此参考资料,这是您需要学习和执行的完美示例。