Backgroundworker返回一个string []数组

时间:2014-02-18 07:15:15

标签: c# background backgroundworker

我正在编写一个使用backgroundWorker1_doWork()递归填充string []数组并通过DoWorkEventArgs e返回的程序,你是怎么做到的?感谢

1 个答案:

答案 0 :(得分:3)

如果我正确理解了您的问题,那么您可以使用e.Result数组在backgroundWorker1_doWork()事件处理程序中设置string[],然后在RunWorkerCompleted事件处理程序中使用它。

以下是我在winforms中编写的代码。

    BackgroundWorker work = null;
    private void button1_Click(object sender, EventArgs e)
    {
        work = new BackgroundWorker();
        work.DoWork += new DoWorkEventHandler(work_DoWork);
        work.RunWorkerCompleted += new RunWorkerCompletedEventHandler(work_RunWorkerCompleted);
        work.RunWorkerAsync();
    }

    void work_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        string[] arr = (e.Result as string[]);

        foreach (var item in arr)
        {
            MessageBox.Show(item);    
        }
    }

    void work_DoWork(object sender, DoWorkEventArgs e)
    {
        string[] arr = new string[3];
        arr[0] = "aa";
        arr[1] = "bb";
        arr[2] = "cc";

        e.Result = arr;
    }

希望这有帮助