我正在使用VS 2015 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!");
}
}
基本上,我希望MessageBox显示运行任务时未处理的条目
答案 0 :(得分:12)
您可以使用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>);
}
}