日期:2014-05-17  浏览次数:21303 次

BackgroundWorker怎么传递参数
        private BackgroundWorker searchKey = new BackgroundWorker();
        private void Button_Click(object sender, EventArgs e)
        {
            string [] st=new string[2];
            st[0] = this.Item.Text;
            st[1] = this.Info.Text;
            searchKey.RunWorkerAsync(st);
        }
        private void searchKey_DoWork(object sender, DoWorkEventArgs e)
        {
            string[] st = new string[2];
            st[0] = ((string[])(e.Argument))[0];
            st[1] = ((string[])(e.Argument))[1];
            
            /*中间省略N步*/
            ListViewItem lv = new ListViewItem(new string[] { list[1], list[2], list[3], list[4] });
            lv.ImageKey = list[0];
            lv.Tag = list[5];
            this.searchKey.ReportProgress(100, lv);
        }
        private void searchKey_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            /*e.UserState
            this.listView.Items.Add();这里面我想加载到ListView控件里*/
        }


整个过程有两次参数传递,因为都不懂怎么参数传递,以前都是设置公共变量,因为初用这个传递参数,现在参数是传递了,但是不知道要怎么取值,请大家帮帮忙。另外,如果有多个BackgroundWorker同时在运行,这样传递参数与取值会不会有问题?应该要怎么做

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Q