如果我有一组操作,我想根据特定条件在后台工作程序中运行,并且我有10个条件,例如
if(a)
BackgroundWorker doA = new backgroundworker()
if(b)
BackgroundWorker doB = new backgroundworker()
if(c)
BackgroundWorker doC = new backgroundworker()
if(d)
BackgroundWorker doD = new backgroundworker()
...
...
每个后台工作人员都需要一个dowork,runworkercompleted等....无论如何都要避免这样做,这样会使代码变得更乱,因为其中一些方法可能会很大?
感谢
答案 0 :(得分:3)
您应该使用System.Threading.Tasks
命名空间中的Task
,它非常简单易用。
要启动任务,您只需使用:Task.Factory.StartNew()
传递方法或lambda表达式作为参数。你得到一个Task
对象,你可以用它继续,得到结果等等。
答案 1 :(得分:1)
您可以考虑使用单个backgroundworker并将参数传递给它。在DoWork方法中使用此参数可以确定要使用哪个代码块。检查此线程
答案 2 :(得分:0)
为什么不将需要评估的对象传递给BackgroundWorker,而BackgroundWorker可以使用它来确定要做什么?