在我的WPF应用程序 - 我有一个与Gridview里面的ListView。用户可以将文件添加到此列表中。我可以在WPF中以同步的方式使用多个BackgroundWorker吗?
在GridView应该让我有相当丰富的“行”,每行显示文件名,额外的应用程序的细节,最重要的一个进度条。 gridview中的每一行都是绑定到集合中的业务对象的数据绑定,具体来说,该对象具有绑定到进度条的“Progress”属性。
我需要处理的每个文件,提取数据,并将数据发送到Web服务,我想,以显示其各自的进度条,每个文件的进度,我通过文件的收集工作。
最初我开始了与含有定期更新“进度”字段的每一行,并指出,所述UI没有更新很好处理逻辑一个简单的循环。
我然后移动在循环处理逻辑,以一个BackgroundWorker其修改的业务对象“进步”领域,因为UI线程不工作这么难 - 这是一个很大的响应速度。
然而,由于的BackgroundWorker的异步性,它开始多BackgroundWorkers(每行一个),几乎所有的在一次作为纺出的循环。我所有的进度条开始进展...
什么是最好的方法将它限制在只有2-3个BackgroundWorkers同时进行?甚至把它留在一个BackgroundWorker上 - 直到前一个完成才开始?我如何引入一个依赖关系,以使所有BackgroundWorkers实质上都是同步的?
如果您希望它们是同步的,那么为什么不创建一个后台工作人员,以同步方式完成所有工作,而不是将其分成多个工作人员? – 2011-05-30 13:09:49