大家好。
我有一个 BackgroundWorker 对象数组,它们运行 Worker 类的实例。当我调用 Worker 类时,对象实例会执行其操作,然后完成代码(循环结束)。我能够监听到 RunWorkerCompleted() 事件,但是当它调用我设置的委托时,我需要知道哪个 Worker 对象刚刚完成了执行。
我在 RunWorkerCompletedEventArgs 中看到 UserState 属性,但是我不知道如何在我的 Worker 对象中设置它,因为它正在完成操作。
有任何想法吗?
来自我 WorkManager.cs 类的片段
我在 RunWorkerCompletedEventArgs 中看到 UserState 属性,但是我不知道如何在我的 Worker 对象中设置它,因为它正在完成操作。
有任何想法吗?
来自我 WorkManager.cs 类的片段
public Worker AddWorker()
{
Worker w = new Worker();
_workers.Add(w.WorkerID,w);
BackgroundWorker bg = new BackgroundWorker();
_bgworkers.Add(bg);
bg.DoWork += w.Start;
bg.WorkerReportsProgress = true;
bg.WorkerSupportsCancellation = true;
bg.ProgressChanged += ProcessWorkerMessage;
bg.RunWorkerCompleted += WorkerFinished;
w.WorkManager = this;
w.BackgroundWorker = bg;
bg.RunWorkerAsync(w);
return w;
}
public void WorkerFinished(object sender, RunWorkerCompletedEventArgs e)
{
if (_onManagerEvent != null)
_onManagerEvent(new ManagerEvent { EventDate = DateTime.Now, Message = "Worker ??? successfully ended." });
}
当我的Worker对象完成其Start()方法中的循环时,我该如何填充传递给我的WorkerFinished方法的RunWorkerCompleteEventArgs对象“e”的userState属性?
谢谢。