日期:2014-05-19  浏览次数:20812 次

利用线程填充ListView的问题?
开发环境:   WinForm,   .net   2003   C#,   FrameWork   1.1

有一个查询按钮:
private   void   btnQuery_Click(object   sender,   System.EventArgs   e)
{
ThreadStart   entryPoint=new   ThreadStart(QueryCER);
Thread   QryTh=new   Thread(entryPoint);
QryTh.Start();
}

private   void   QueryCER()
{
        LView.Items.Clear();
        ListViewItem   rItem=null;
        LView.ListViewItemSorter   =null;

        for   (j=1;j <100;j++)
        {
rItem=new   ListViewItem( "A "   +   j.ToString());
for(i=1;i <5;i++)   rItem.SubItems.Add(i.ToString());  

this.Text   = "(FILL:   "   +   j.ToString()     + "   ) ";
                    //注:LView是ListView控件
LView.Items.Add(rItem);
        }
}

为什么在第一次点查询按钮时,填充第一条记录时,要花很长的时间,大概要2秒钟左右,而其后的则很快.
以后再点查询按钮,是很会,而很少出现象第一次点查询按钮时填充第一条记录的等待现象?

这是什么原因呀?


------解决方案--------------------
因为你头一次需要在QueryCER()
中new 99个ListViewItem