读书人

C# winfrom窗体数据加载 过大一般怎么

发布时间: 2013-12-09 09:45:50 作者: rapoo

C# winfrom窗体数据加载 过大一般怎么处理?
C# winfrom窗体数据加载 过大一般怎么办

我加载了一个Tree 加载方法采用异步写在 Shown 事件里面 但是出现如上图现象。


MyAsyncDelegate del = new MyAsyncDelegate(MY方法);
IAsyncResult result = del.BeginInvoke(new AsyncCallback(CallBack), null);
方法里面采用 this.Invoke(委托);  在这样调用的,貌似还是没什么反应。。求大神给出解决方案。。。

[解决办法]
工作线程(轻型的线程,异步+委托)的作用,是提取数据并转化为UI最终显示的结果,UI是需要显示一下。


换言之:你要确保工作线程不只是提取数据,还有转化工作也一起来做。最后的结果再委托UI线程来操作。

如果即使这样也显示有点卡,那我是否可以理解为你加载的数据用户并不是第一眼全部可以看到。如是:那么为什么不先加载第一屏需要的数据,其它的再进行后期加载。

[解决办法]
分页
显示部分数据,按需要再显示其他。
[解决办法]
同楼上.
可以先显示根节点 展开时再加载下层节点.
[解决办法]
一般这种控件都有一个begin、end之类的方法,把插数据的过程放入begin end之间就能快了,因为不需要每次都绘制,如果已经这么做还慢,就用按需展开的方法,点了加号后再加载子节点内容,楼主你可以搜搜C#加载注册表到Tree

读书人网 >C#

热点推荐