当前位置: 代码迷 >> .NET新技术 >> listview 显示大容量数据的时候,出现假死,该如何处理
  详细解决方案

listview 显示大容量数据的时候,出现假死,该如何处理

热度:268   发布时间:2016-04-25 01:26:55.0
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
  相关解决方案