在我的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