如何在BackgroundWorker_DoWork和_RunWorkerCompleted之间传输列表

时间:2013-07-22 18:46:59

标签: c# windows-phone-7 windows-phone-8 backgroundworker

我有一个后台工作程序,当PhoneApplicationPageLoaded时会触发。

如何将_DoWork过程中生成的列表传输到_RunWorkerComplete过程?

这是空代码:(我会把它全部放进去,但它很长)

private void bw_DoWork(object sender, DoWorkEventArgs e)
    {
        BackgroundWorker bw = new BackgroundWorker();
        bw.WorkerReportsProgress = false;
        bw.WorkerSupportsCancellation = false;

    bw.RunWorkerCompleted +=
new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
    }

private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {

    }

1 个答案:

答案 0 :(得分:2)

e.Result处理程序中设置DoWork并阅读e.Result处理程序中的RunWorkerCompleted(您需要将其强制转换为相应的类型)。

其他选项是使用该类型的实例字段;将它设置为一个并在另一个中读取它,或者使两个事件处理程序都是lambda,而不是命名方法,在这些方法中它们都关闭一些公共变量。