采用树控件添加项目更快的方法



主要软件:
主要软件版本: 7.0
主要软件修正版本: 8.0
次要软件: N/A

问题:
我正在尝试添加大量的项目到树(tree)控件中,但是执行非常慢。需要花费若干秒更新我所有项目的控件。有没有加快这一过程的方法?

解答:
树控件常用调用节点方法,诸如 Add Item 或者 Add Item to End。使用调用节点添加一个项目到树控件将强制线程交换到用户接口线程,使 LabVIEW 能更新树控件并重新画它。如果您重复这个操作以添加大量的项目,这将是非常耗时的操作。

在独立添加项目到树控件时,您可以在添加项目之前将前面板属性 Defer Panel Updates 设置为真,添加之后改回为假的方式改善性能。LabVIEW 将不会重新画前面板控制控件或者指示控件直到 Defer Panel Updates 为真。因此,如果您添加 500 项目到一个树控件,您只需要一次重新画树控件,而不是画 500 次。这将极大地提升性能。这个方法也能在利用属性节点或者调用节点重复更新任意前面板控制控件或者指示控件时提升性能。

另外,如果您有 LabVIEW 8 或者更高版本,有另外地调用节点方法使您添加多个项目到一个树控件中。这个方法称为 Add Multiple Items to End。这个方法接受一个簇的数组做为输入。每个簇包含您想要添加的各自项目的参数,比如 Left Cell String 或者 Child Tag。这个方法不仅允许您一次性更新带有多个项目的树控件,极大提升性能,同时也使用簇的数组存储您的树控件所有项目的信息。例如,如果您在日后需要使用相同值,这将允许您事先将这些值存储在 LabVIEW 数据日值文件中。

参考附件中 LabVIEW 7.0 以及 8.0 的例程了解关于上述描述的方法执行时间差异的更多信息。

相关链接:
Developer Zone Example: New Native Tree Control In LabVIEW 7 Express
KnowledgeBase 2WMBER1W: How Do I Load and Use Custom Symbols for My Tree Control Items?
LabVIEW 7.1 Help: Creating a Tree Control
LabVIEW 7.1 Help: Defer Panel Updates Property


附件:


Tree_Control_Test_80.vi


报告日期: 06/26/2006
最近更新: 12/28/2011
文档编号: 3WHD5HUM