数据库中大概有50000条数据,循环加载太没效率了。要将近一分钟时间~!大家有没什么好的算法呀。。金山词霸的数据好象也60000以上,,加载时(全部加载了)却一下就好了。。

解决方案 »

  1.   

    1. 搞清楚是从数据库取数据慢,还是加到树中慢
    2. 用 BeginUpdate 和  EndUpdate
    3. 如果是多级树,可以考虑分层加载
    4. 看看 http://blog.csdn.net/myy/ ,这里有个我写的快速加载多级树的算法
      

  2.   

    对的,多级树都是分层加载的
    你打开Windows的资源管理器,选中左边的“我的电脑”,然后按小键盘上的*号键
    看看Windows的多级树的完全加载需要多久另外5W条记录应该也是很快的
      

  3.   

    是一级的树。。从数据库读用 BeginUpdate 和  EndUpdate 好象没什么好转基本上一个样。。直接把50000记录拷到一个文本文件  然后 tree的LoadFromFile都要等上1分钟。。大家有没什么更好的办法,,或者讨论下 金山词霸 那样的快  是怎么实现的呀,,
      

  4.   

    还有用 多线程同步 读取刷的一下 cpu 100%  死机了不用同步 除了界面 不死外 速度上也没改善呀~!
      

  5.   

    从数据库读用 BeginUpdate 和  EndUpdate 好象没什么好转基本上一个样。。
    ------------------------
    是不是没有用对啊?如果TTreeView可见,你原来没用BeginUpdate/EndUpdate 现在用了,绝对不一样!TreeView1.Items.BeginUpdate ;
    TreeView1.Items.Clear;// 这里加载节点....TreeView1.Items.EndUpdate ;
      

  6.   

    是呀。。就是这么用的呀。。MainForm.TreeView.Items.BeginUpdate;
    for I:=0 to StrList.Count-1 do
    begin
       Node := TreeView.Items.AddChild(nil,itemP.name);
    end;
    TreeView.Items.EndUpdate;一样要1分钟左右 有没别的方法能提升速度? 以后可能还会加数据哦。。
      

  7.   

    http://topic.csdn.net/t/20040730/11/3226114.html
    看13楼  zswangII   (伴水清清)(一贴不灌,何以灌天下?) 的回复