我有很多UI操作。我在表单上显示了一个沉重的实时图表和一个列表框以及其他控件。
现在我的问题是UI线程更新图表和列表框以及其他控件混乱,因为图表不断更新,列表框没有长时间更新。
要解决此问题,请在添加到列表框后添加以下行,我的问题已解决。
Listbox.update();
但我认为有一个很大的问题,我不知道这一点,我只是隐藏了这个问题。
总结为什么以草率或无序的方式更新表单控件?
答案 0 :(得分:0)
在这种情况下,在您完成繁重操作之前,UI上的任何组件都不会更新。我假设你有这样的代码:
public protected doSomeThing(Sender e, Evets args)
{
...
Listbox.update();
HeavyOperations();
...
}
在HeavyOperations()完成之前,您的列表框不会更新。因此,您必须在不同的线程上运行HeavyOperations()。
看看这个:Threading in Windows Forms 阅读此参考资料,这是您需要学习和执行的完美示例。