listview 显示大容量数据的时候,出现假死
listview 显示大容量数据的时候,出现假死,现在有111191条数据需要显示在listview 上面,
代码如下:
if (ht != null)
{
if (ht.Count > 0)
{
if (string.IsNullOrEmpty(txtItemID.Text.Trim()))
{
MessageBox.Show("请输入道具编号!");
return;
}
lblTotalDataNum.Text = ht.Count.ToString();
lvwItem.Visible = false;
if (ht.ContainsKey(ItemID))
{
Hashtable temp = (Hashtable)ht[ItemID];
foreach (DictionaryEntry de in temp)
{
ListViewItem item = new ListViewItem(ItemID.ToString()); //道具编号
item.SubItems.Add(ItemDB.Instance.GetItemName(ItemID)); //道具名称
item.SubItems.Add(de.Value.ToString()); //道具数量
item.SubItems.Add(de.Key.ToString()); //角色名称
lvwItem.Items.Add(item);
}
}
lvwItem.Visible = true;
lblCurrentDataNum.Text = lvwItem.Items.Count.ToString();
return;
}
如果我输入道具6378的话,hasttable里面就有111191条数据。我需要全部显示在listview里面,但是由于数据量过大,导致listview假死,请高手解答如何避免假死,同时也能显示出所有数据。有代码更好,在此感激不尽。
------解决方案--------------------GridView有虚拟模式,ListView也有。我项目的数据显示动辄就是千万条,虽然没有用listview,但远离相同。看看这个http://msdn.microsoft.com/zh-cn/library/system.windows.forms.listview.virtualmode.aspx
------解决方案--------------------大数据分页加异步是解决的根本
------解决方案--------------------http://www.cnblogs.com/jasenkin/archive/2011/08/22/listview_virtual_model.html