使用递归函数从表中加载树视图节点很简单,但是对于大量数据需要很长时间。
我有一个包含这些字段的表:id、title、parentid :它将树视图节点保持在 N 级。
该表有超过 70000 行。当我从这个表中填充树视图时,需要很长时间(大约 9 分钟)才能完成。
有没有更好的解决方案来提高加载速度?
使用递归函数从表中加载树视图节点很简单,但是对于大量数据需要很长时间。
我有一个包含这些字段的表:id、title、parentid :它将树视图节点保持在 N 级。
该表有超过 70000 行。当我从这个表中填充树视图时,需要很长时间(大约 9 分钟)才能完成。
有没有更好的解决方案来提高加载速度?
您可以尝试 TreeView.Items.BeginUpdate/EndUpdate。
但是在可视化控制中存储 70000 行是一个值得商榷的想法。您是否考虑过 Virtual TreeView 或仅显示数据表的一小部分的其他方式?
随着大小的增加,标准的 TTreeView 会很快变慢。VirtualTreeview 是一个完美的解决方案,可以处理数百万个节点而不会降级。
我对 TreeView 控件做了一个简单的扩展。它非常快。它将内部存储移动到字典中,这会产生巨大的影响。在我的真实示例中,我需要加载 100000 条记录。之前是37分钟,现在是2.2秒!!
您可以在 CodeProject 上找到示例和代码:http: //www.codeproject.com/Articles/679563/Fast-TreeView
啊,抱歉,我错过了 Deplhi 部分。我的例子是 C# WindowsForms ....