Und*_*007 0 c# backgroundworker
我是C#的新手,目前正在开展一个需要BackgroundWorkers的项目.我发现BackgroundWorker RunWorkerAsync只需要一个对象作为参数.但是在某些情况下我需要将多个对象传递给RunWorkerAsync方法.
我目前所做的是将所有对象加载到List中,然后将它们作为单个List对象传递,该对象工作正常.但我的问题是,这可以做得更好还是更好?这种方法有什么问题吗?
List<object> data = new List<object>(3);
List.Add(object1);
List.Add(object2);
List.Add(object3);
bwImportData.RunWorkerAsync(data);
private void DoWork(object sender, DoWorkEventArgs e)
{
List<object> data = e.Arguments a List<object>
objecttype1 object1 = data[0] as objecttype1;
objecttype2 object2 = data[0] as objecttype2;
objecttype3 object2 = data[0] as objecttype3;
//Do stuff
}
private void RunWorker(object sender, RunWorkerCompletedEventArgs e)
{
//Do stuff stuff stuff
}
Run Code Online (Sandbox Code Playgroud)
您可以为参数定义结构/类,创建该类型的对象,填充参数,并将其作为对象参数发送.稍后直接从对象中使用它们,而不是像在示例中那样复制局部变量var object1 = data[0] as objecttype1;.