当前位置:  开发笔记 > 编程语言 > 正文

有没有其他更好的方法将参数传递给backgroundworker runasync?

如何解决《有没有其他更好的方法将参数传递给backgroundworkerrunasync?》经验,为你挑选了1个好方法。

我是C#的新手,目前正在开展一个需要BackgroundWorkers的项目.我发现BackgroundWorker RunWorkerAsync只需要一个对象作为参数.但是在某些情况下我需要将多个对象传递给RunWorkerAsync方法.

我目前所做的是将所有对象加载到List中,然后将它们作为单个List对象传递,该对象工作正常.但我的问题是,这可以做得更好还是更好?这种方法有什么问题吗?

List data = new List(3);

List.Add(object1);
List.Add(object2);
List.Add(object3);

bwImportData.RunWorkerAsync(data);

private void DoWork(object sender, DoWorkEventArgs e)
{
   List data = e.Arguments a List
   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
}

i486.. 5

您可以为参数定义结构/类,创建该类型的对象,填充参数,并将其作为对象参数发送.稍后直接从​​对象中使用它们,而不是像在示例中那样复制局部变量var object1 = data[0] as objecttype1;.



1> i486..:

您可以为参数定义结构/类,创建该类型的对象,填充参数,并将其作为对象参数发送.稍后直接从​​对象中使用它们,而不是像在示例中那样复制局部变量var object1 = data[0] as objecttype1;.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有