foreach 循环1W+的数据情况怎么优化?

kc5488a 2012-12-19 10:29:55
foreach (.....)
{
this.listBox1.Items.Add(.....);
}
如果数据有1W条+的情况下,listBox加载会很慢,请问下有什么优化的办法吗?
...全文
762 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
杨友山 2012-12-19
  • 打赏
  • 举报
回复
一边加载一边显示,加几百条时再sleep几十毫秒。
kc5488a 2012-12-19
  • 打赏
  • 举报
回复
引用 4 楼 bdmh 的回复:
listbox1.BeginUpdate(); for() { } listbox1.EndUpdate();
如果控件换成richTextBox,就没有BeginUpdate这个方法了,richTextBox能优化读取的数据吗
dacan66 2012-12-19
  • 打赏
  • 举报
回复

this.listBox1.SuspendLayout();
foreach (.....)
{
    this.listBox1.Items.Add(.....);
}
this.listBox1.ResumeLayout();
silentcross 2012-12-19
  • 打赏
  • 举报
回复
一次加载1万多条数据进来那能好用么,对人脑而言,一个画面几十条数据算是多的了,两百条数据顶天了,你还是想想办法过滤下,或者分下类,做成多级展示
bdmh 2012-12-19
  • 打赏
  • 举报
回复
listbox1.BeginUpdate(); for() { } listbox1.EndUpdate();
qldsrx 2012-12-19
  • 打赏
  • 举报
回复
代码重贴:
this.listBox1.BeginUpdate();
foreach (.....)
{    
    this.listBox1.Items.Add(.....);    
}
this.listBox1.EndUpdate();
qldsrx 2012-12-19
  • 打赏
  • 举报
回复
foreach (.....)
{
    this.listBox1.BeginUpdate();
    this.listBox1.Items.Add(.....);
    this.listBox1.EndUpdate();
}
快溜 2012-12-19
  • 打赏
  • 举报
回复
1W条放在一个listBox里让人选择也不现实吧,如果数据有规律可以做个分类加载。
lc_ant 2012-12-19
  • 打赏
  • 举报
回复
动态加载吧,先加载个一两百条,往后看的时候在来加载
周睿 2012-12-19
  • 打赏
  • 举报
回复
按需加载吧,因为就算有人提出一个不慢的方法,100W条呢
着魔 2012-12-19
  • 打赏
  • 举报
回复
这么多次循环。。。。。还是分类显示吧
nanoxue 2012-12-19
  • 打赏
  • 举报
回复
直接用委托就可以了。 Delegate void InvorkDelegate(); Public void Invorks(){ For(int i=0;i<1000000;i++){ This.Invork((MethodInvorker)delegate(){ This.listbox1.Items.Add(i); }); } } //调用 Thread thread=new Thread(Invorks); Thread.start();

110,538

社区成员

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

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

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