【发布时间】:2012-03-28 11:30:23
【问题描述】:
我正在尝试使用以下代码,但我的应用程序性能不佳。
我在“dt_Images.ToList()”中有 2000 张图像的列表。
在cs中:
foreach (var dr in dt_Images.ToList())
{
BTN = new Button();
BTN.Name = dr.Name.ToString();
BTN.Image = dr.Image;
BTN.Text = dr.text.ToString();
flowLayoutPanel1.Controls.Add(BTN);
BTN.Click += new EventHandler(this.pic_Click);
}
我也尝试与 listview 绑定,但没有达到预期的速度。
使用 flowLayoutPanel 绑定时如何提高速度?
我可以在控件中绑定直接 DataSource 吗?那我用的是哪个控件?
请帮帮我
【问题讨论】:
-
图像在数据库中以 BLOB 数据的形式存储,重量很大。是否可以预取此信息并将其保存在您的记忆中。如果您的图像相当小(以 KB 为单位,而不是以 MB 为单位),2000 并不是一个大块
-
我的所有图像都以 KB 为单位,但需要 2 分钟才能加载此表单。 @questzen
-
数据库获取非常耗时。您可以通过在本地内存中缓存图像来缩短周转时间。如果您的应用程序允许,请尝试事先初始化这 2000 个对象。
-
我的 foreach 循环需要 2 分钟才能执行。可以删除 foreach 循环吗? @questzen
-
请看我的回答