backgroundWorker与ListView疑问
        private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            this.Invoke((MethodInvoker)delegate
            {
                this.listView.BeginUpdate();
                this.listView.Items.Clear();
                //...查询数据库的过程
                //...很多查询记录,并将记录列出到表中
                this.listView.EndUpdate();
            });
        }
为什么这一个过程程序界面还是会卡住呢?不是在后台进程中进行的吗?
              
------解决方案--------------------你应该把耗时的操作放在线程中,而不是Invoke中,Invoke只放和UI刷新有关的操作。
------解决方案--------------------
backgroundWorker_DoWork是一个线程,但是你在使用Invoke的时候,是将Invoke中代码交给UI主线程来执行,所以会卡,所以你要将费时跟UI不想关的代码写在Invoke以外的地方,而跟UI相关的写在Invoke中(跟UI相关的操作要交给UI主线程来操作)
------解决方案--------------------
并不是你所说的这样,backgroundWorker能够完成所有的工作:
 private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            //...查询数据库的过程
            //...很多查询记录,并将记录列出到表中
            this.Invoke((MethodInvoker)delegate
            {
      &n