我正在使用 VS 2015 winform 后台 worker 来完成一些任务。
我有 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 在完成任务运行时显示哪些条目未处理
最佳答案
您可以使用 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>);
}
}
关于c# - 在 DoWork() 完成后将变量传递给 RunWorkerCompleted(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40934282/