c# listbox 显示大量数据速度很慢,如何解决? 10

c#使用listbox加载10m以上数据,第一次显示的时候速度很慢要几分钟,cpu占用%100,如何解决这个问题?谢谢,不用考虑这种设计是否合理具体是这样实现的:form... c#使用listbox加载10m以上数据,第一次显示的时候速度很慢要几分钟,cpu占用%100,如何解决这个问题?谢谢,不用考虑这种设计是否合理
具体是这样实现的:
form里有两个tabpage1和tabpage2,当前窗体默认给用户呈现的是tabpage1,listbox是在tabpage2中,通过items.add把所有数据都加入listbox,程序运行完毕后,用户从tabpage1切换到tabpage2,这个时候显示listbox所有内容的过程就很慢,要好几分钟,cpu占用达到100%。
不考虑分页,如何能使显示时间减少?

谢谢,10m的记录总字节,先不考虑分页(因为涉及到各个tabpage自动跳转功能),能否解决这个问题?

10m内容是直接从另一个程序的文本日志取过来的,循环add的速度用户可以接受,就是第一次显示很慢,只要第一次显示完成后,再怎么切换都很顺畅。

多谢各位,咱们先解决如何提高listbox第一次显示大量数据的效率?
展开
 我来答
dkxpsg
推荐于2017-09-11 · TA获得超过1628个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1047万
展开全部
用这个方法可能稍微快点,我的机子上要19秒文件8.48M
private void button1_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
string[] strArr = File.ReadAllLines("D:\\AAAA.txt", Encoding.Default);
listBox1.DataSource = strArr;
TimeSpan ts = DateTime.Now - dt;
MessageBox.Show(ts.Seconds.ToString());
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangziyi129
2009-07-03 · TA获得超过1387个赞
知道小有建树答主
回答量:1492
采纳率:100%
帮助的人:0
展开全部
第一 为什么不考虑是否合理 100%不合理
解决方法
1.优化数据库
2.用存储过程写
3.分批ITEM.ADD 意思就是 你可以1M 1M的加 就比较快了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjloveql
2009-07-03 · 超过28用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:87.8万
展开全部
设计的绝对的不合理。想你这样如果100M的数据,你有没有想过数据量多大?
你这样循环ADD。时间不久才怪。最好的方式就是利用算法,一次取多少。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Book_OnLine
2009-07-03 · TA获得超过231个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:149万
展开全部
10m以上数据太多了。而且用items.add这样来增加数据循环的次太多了,如果是用来显示的用datagridview速度会提高很多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eed2f8
2009-07-03 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3810万
展开全部
10m是多少?
是记录数,还是记录总字节?
如果是我,我会想办法分页。
你呈现给用户10M的记录有意义么?得看到什么时候?交互性不好,不友好!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式