在C#中按名称查找backgroundworker对象

时间:2014-12-24 16:13:15

标签: c# controls backgroundworker

如何使用其名称查找backgroundworker的对象?对于控件,我可以使用Find来根据其名称访问控件:

Control Control = this.Controls.Find(ControlName, true)[0];

背景工作者和/或计时器怎么样? Controls.Find无法找到它们。

2 个答案:

答案 0 :(得分:3)

这是不可能的,因为没有公共对象可以跟踪对背景工作者或计时器的引用。

您可以自己存储对所有后台工作人员的引用:

public static List<BackgroundWorkers> Workers {get; set;}

static()
{
    Workers = new List<BackgroundWorkers>();
}

创建工作时保存对worker的引用:

BackgroundWorker worker = new BackgroundWorker();
Workers.Add(worker);

您还可以通过在Dictionary<string, BackgroundWorker>

中存储工作人员为每个工作人员命名
BackgroundWorker worker = new BackgroundWorker();
Workers.Add("workerName", worker);

BackgroundWorker myWorker = Workers["workerName"];

答案 1 :(得分:2)

没有办法做到这一点,只是保留对BackgroundWorkers的引用,没有其他办法。

相关问题