gpt4 book ai didi

c# - 在 DoWork() 完成后将变量传递给 RunWorkerCompleted()

转载 作者:太空狗 更新时间:2023-10-30 00:02:37 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com