我正在使用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>);
}
}