我正在使用VS2015 Winform后台工作人员执行一些任务。
我有一个使用DoWork()List<string> myList方法,一旦某个过程完成,它就会删除列表中的每个条目。我的目标是让用户知道myList中的哪个条目没有被处理(因为它会在每个进程之后删除一个条目,最后剩下的就是未被处理的条目)。为此,我要将myList变量传递给RunWorkerCompleted(),但我不仅不知道如何执行此操作,甚至不确定这是否是执行此操作的最佳方法。
有没有更好的方法让用户知道myList中的哪个条目没有被处理,如果没有,我将如何将变量从dowork()传递到runworkercompleted()?
当前RunWorkerCompleted()方法:

private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    if(e.Error != null)
    {
        MessageBox.Show(e.Error.ToString());
    }
    else
    {
        MessageBox.Show("Done!");
    }
}

基本上,我希望消息框在运行完任务后显示哪些条目未被处理

最佳答案

您可以使用RunWorkerCompletedEventArgs的结果
this
对一些不想看的人来说,用这个

private void bgw_DoWork(object sender, DoWorkEventArgs e)
{
    //Do your work
    e.Result = mylist;
}

private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    if(e.Error != null)
    {
        MessageBox.Show(e.Error.ToString());
    }
    else
    {
        ShowResult(e.Result as List<string>);
    }
}

08-26 16:32