【发布时间】:2012-10-01 16:05:01
【问题描述】:
我已经使用了 listView.BeginUpdate() 和 listView.EndUpdate(),但删除 25k 中的 100 个项目时仍然需要大约 10 秒。
有什么想法和技巧可以让它更快?
编辑:
this.listView.BeginUpdate();
for (int i = this.listView.CheckedItems.Count - 1; i > -1; --i)
{
this.listView.CheckedItems[i].Remove();
}
this.listView.EndUpdate();
【问题讨论】:
-
你真的需要一次加载 25k 个项目吗?分页或滚动加载怎么样?
-
显示代码,我可以在几毫秒内删除 100 个项目。刚刚检查了代码,我通过绑定来完成。
-
用户可以来回滚动并随机看到列表部分,所以我不知道如何优化。
-
我讨厌 WinForms 的缓慢性。结果?最终做 C++。
-
顺便说一句,您可能想试试 ListView 的“虚拟模式”。
标签: c# .net winforms performance listview