请问怎么样加载树 防止页面假死 高分求救 100分

l274747948 2015-08-17 02:05:24

//添加节点
private delegate void UpdateTreeNodeUI(TreeNode parentNode, TreeNode Node);

private void UpdateTreeNodeUI_Node(TreeNode parentNode, TreeNode Node)
{
parentNode.Nodes.Add(Node);
}

//绑定树的方法
TreeNode node = new TreeNode();
node.Name ="";

if (this.InvokeRequired)
{
UpdateTreeNodeUI ur = new UpdateTreeNodeUI(UpdateTreeNodeUI_Node);
this.Invoke(ur, parent,node);
}



数据库大概有几千条数据 加载时候有假死现象
现在要解决这个问题

也做过惰性加载 解决假死现象

但还有个反向对比绑定的一个功能

所以还是要都加载到树上 请问有什么办法解决吗




...全文
361 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
l274747948 2015-08-31
  • 打赏
  • 举报
回复
感谢各位 问题解决了 我用的是C# 窗口 慢的问题是因为我在主窗口调用自定义控件的加载数据 如果我在自定义控件直接加载数据就会快 当然解决了目前 几千条数据的问题 加载几千条是没有问题的~!
吉普赛的歌 2015-08-18
  • 打赏
  • 举报
回复
说明一下: 1. 让 .net 控件的 TreeView 滚蛋吧!几千条数据真的不算什么, 只是这个TreeView在搞鬼! 2. 用 zTree , 这是 jQuery 树中最好的, 没有之一。 地址:http://www.ztree.me/v3/demo.php#_101 3. zTree中的树花样繁多, 绝对可以满足你的需求。如果你的数据太大, 还可以用上异步加载。
仰望那天空 2015-08-18
  • 打赏
  • 举报
回复
从两方面分析: 1、从数据库来说,几千上万条查询应该一秒不到,所以不影响 2、那么从程序上看,就是输出的问题影响到加载速度。(这就涉及到两方面:数据表库设计、程序代码编写) 解决办法: 推荐用js加载这些数据,比如js插件:dtree 或者其它的jquery插件来实现 适当调整表设计以适应这些插件的快速读取
老李家的小二 2015-08-18
  • 打赏
  • 举报
回复
先加载根目录和一级目录,其他目录点击后再加载
_lee_chong 2015-08-18
  • 打赏
  • 举报
回复
撇开那些优化不说,涉及你的实际情况,不好细致的讨论,通常如果ui线程非要做这些占用cpu的处理为了提高用户体验,可添加一个等待处理的窗口,来阻塞用户对界面的操作;
  • 打赏
  • 举报
回复
如果你不能很好地分层,可能你想什么数据库表数据都想“一次就拿到”前端内存里来。这其实就不是你这个帖子的问题范围了,就是一个整体的涉及分层、业务、性能、体验方面的设计思想比较容易出现任性状况的问题了。
  • 打赏
  • 举报
回复
如果非要一次加载创建很多节点,那么使用 SuspendLayout、ResumeLayout 防止界面额外刷新。 不过如果数据量确实是不可控的,那么最好不要找什么“反向对比绑定功能”的借口,业务的问题(例如某业务对比它自己的服务器端title)走业务服务,不要把什么后台业务都拿到前端UI上来。
本拉灯 2015-08-17
  • 打赏
  • 举报
回复
你可以让点击节点展开后,再加载子节点(下一级),然后子节点的子节点只有当鼠标点击后展开再加载。 就是有个ExpentBefore事件
crystal_lz 2015-08-17
  • 打赏
  • 举报
回复
TreeNode 确实是慢的要死。。。
  • 打赏
  • 举报
回复
只能异步加载了,点开节点时再动态加载子节点
huiyaosoft 2015-08-17
  • 打赏
  • 举报
回复
是Winform的还是asp.net的?如果频繁使用树的话可一次性从数据库中读取全部数据,如果不是的话,每次仅读取需要的数据。树如果包含ico图片,请注意ico图片的加载方法,避免不必要的加载。如果是Web程序使用浏览器查看构造树时时间都花在哪里了。
Forty2 2015-08-17
  • 打赏
  • 举报
回复
只有几千条数据... 可以用后台线程先全部下载到本地。 然后再UI建树。
内容概要:本文围绕基于PI双闭环解耦控制的三相电压型PWM整流器在第四象限运行的仿真研究展开,重点析其在电流反向流动工况下的控制性能。通过Simulink搭建系统模型,采用电压外环与电流内环构成的双闭环PI控制策略,并引入d-q轴解耦环节以消除交叉耦合影响,实现对整流器在能量回馈状态下的高精度、稳定控制。研究涵盖了系统数学建模、控制器参数设计、解耦算法实现及动态响应仿真验证,充展示了该控制方法在抑制扰动、提升系统鲁棒性方面的有效性。; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、科研人员及从事新能源变流器、电能质量治理或工业传动系统开发的工程技术人员;具备自动控制理论基础和Simulink仿真能力者更佳。; 使用场景及目标:①深入掌握三相电压型PWM整流器的工作原理及其在不同运行象限的能量流动特性;②理解并实践PI双闭环控制系统的设计思路与参数整定方法;③学习d-q坐标系下电流解耦控制的实现机制;④熟练运用Simulink进行电力电子系统建模与仿真析;⑤为实际工程中实现高效能量双向变换提供理论依据与技术参考。; 阅读建议:建议结合Simulink环境同步搭建模型,细致析各模块的信号流向与控制逻辑,重点关注电流内环的动态跟踪能力和电压外环的稳态调节性能,可通过改变负载突变、电网电压波动等条件进行对比实验,进一步评估系统的抗干扰能力与稳定性表现。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧