显示多个标签的有效方法

时间:2013-10-08 21:19:41

标签: vb.net multithreading winforms

我正在寻找一种快速有效,快速地展示多个标签的方法。除了一个接一个地替换标签的所有.text属性之外,有什么好办法呢?我的理解是,无论何时更新.text属性,都必须重新绘制UI,如果您要更新50个控件,则会增加延迟。

我知道线程是一个选项,但是当我尝试这个时,我没有看到太大的区别,因为我无法一次加载2个标签,我仍然需要在标签更新之前等待UI线程。还有哪些方法可以快速有效地加载50多个标签?它现在的方式需要很长时间(3-4s),我觉得这可以降低。信息来自后端系统,因此我没有数据集/等选项。

1 个答案:

答案 0 :(得分:2)

您必须将从数据库(使用后台线程执行)检索数据的代码与更新UI的代码分开(这应该尽快发生,因为您不想阻止UI太久了。)

我的建议是使用BackgroundWorker组件检索所有50个标签的数据。当BackgroundWorker引发RunWorkerCompleted事件时,您调用表单'SuspendLayout函数,更新标签的所有值,然后调用ResumeLayout。 SuspendLayout会阻止控件重绘,直到您调用ResumeLayout。

更多信息:BackgroundWorkerSuspendLayoutResumeLayout