我在程序中采用了backgroundWorker来处理数据,同时我还用到了委托,但我的主线程还会出现假死情况,请大家帮忙分析解决一下,谢谢具体程序如下:        //委托
        private delegate void Connect(ListView _list);
        //事件
        private event Connect _Connect;         程序一运行时时钟就触发开始执行
        private void timer_Tick(object sender, EventArgs e)
        {
            if (backgroundWorker1.IsBusy == false)
                backgroundWorker1.RunWorkerAsync();
                      
        }        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            ConnDT();
        }
        private void ConnDT()
        {
            
            if (_Connect == null)
            {
                _Connect += new Connect(MainForm__Connect);               
            }
            _Connect(this.dtListView);
        }        /// <summary>
        ///  委托连接事件
        /// </summary>
        /// <param name="_list"></param>
        void MainForm__Connect(ListView _list)
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new Connect(MainForm__Connect), new object[] { _list});
            }
            else
            {
                foreach (ListViewItem listViewItem in _list.Items)
                {
                       .............操作          
                                    }
            }
        }