delphi里的listbox插入大量数据问题,请教高手

时间:2021-06-06 18:51:53
在listbox导入1万组数据的时候,花费时间是1秒不到
导入10万组的时候用了25秒
导入100万组的时候竟然要了40多分钟,请问有没有办法使时间缩短

begin
opendialog1.FileName:='';
if opendialog1.Execute then
listbox3.Items.BeginUpdate;
listbox3.Items.LoadFromFile(opendialog1.FileName);
listbox3.Items.EndUpdate;
end;


还有导入数据的过程中,cpu都是100%的,该如何解决

13 个解决方案

#1


写到线程里试试~~

#2


用memorystream

#3


楼上的能否具体点,本人是新手,谢谢

#4


最直接的办法是突破listbox的私有域进行操作。

写入线程可以使得看起来不用等待,但对于实际的写入时间没有影响

另外,不知道你究竟是要实现什么,要用Listbox存入100万组数据???

#5


功能实现的设计根本就不对路。

1.  为什么要在一个TListBox中导入如此大量的数据,而且是一次性完成?
2.  哪个疯子会查看如此众多的数据?

根本的解决方法是深刻理解功能,重新设计实现方法。

#6


同意4、5楼

#7


既然有这个区别,何不分批呢
我是才鸟,乱说的

#8


强烈支持5楼的看法

#9


这个设计师有病......

#10


神经病呀。超过100条就要分页多次查询显示。

修正错误的最好办法就是避免错误。

程序是设计出来的,不是实现出来的。

#11


该回复被版主删除

#12


现代人都喜欢玩BT

#13


用TIMER控件,每秒导入一万条,100秒完成。

#1


写到线程里试试~~

#2


用memorystream

#3


楼上的能否具体点,本人是新手,谢谢

#4


最直接的办法是突破listbox的私有域进行操作。

写入线程可以使得看起来不用等待,但对于实际的写入时间没有影响

另外,不知道你究竟是要实现什么,要用Listbox存入100万组数据???

#5


功能实现的设计根本就不对路。

1.  为什么要在一个TListBox中导入如此大量的数据,而且是一次性完成?
2.  哪个疯子会查看如此众多的数据?

根本的解决方法是深刻理解功能,重新设计实现方法。

#6


同意4、5楼

#7


既然有这个区别,何不分批呢
我是才鸟,乱说的

#8


强烈支持5楼的看法

#9


这个设计师有病......

#10


神经病呀。超过100条就要分页多次查询显示。

修正错误的最好办法就是避免错误。

程序是设计出来的,不是实现出来的。

#11


该回复被版主删除

#12


现代人都喜欢玩BT

#13


用TIMER控件,每秒导入一万条,100秒完成。