【发布时间】:2017-07-26 09:46:07
【问题描述】:
当我将 CheckedListBox 的 DataSource 设置为 10lack 项时。它的应用程序仍然是理想的长达 3 分钟。
List<string> list = new List<string>();
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += ((o, a) =>
{
//1Lakh unique records.
for (int i = 0; i < 100000; i++)
list.Add("Item" + i);
});
worker.RunWorkerCompleted += ((obj, ea) =>
{
//Assign the 1Lack records to the CheckedListBox.
//>>Here is the UI gets hanged.(Need to wait more than 10 - 20 seconds to gets the response)
checkedListBox1.DataSource = list;
});
worker.RunWorkerAsync();
有没有办法优化加载选中列表框中项目的时间延迟。
【问题讨论】:
-
它是 foreach 循环中唯一的一行代码,还是您还有其他代码?为什么你首先需要 10lac 项目在 ui 中?你不能使用分页吗?
-
您希望有人搜索您的一百万个项目并检查一些吗?在显示项目之前,您应该考虑使用不同的控件或过滤数据源。
-
@ChetanRanpariya 我只使用此行来加载项目。
-
为什么要在列表框中加载 100 万个项目?您能解释一下您要实现的功能吗?
-
使用
BeginUpdate/EndUpdate方法。
标签: c# winforms performance checkedlistbox