我需要並行運行四個功能,同時保持UI響應和報告進度,是後臺工作者的最佳方式嗎?我怎樣才能在winform中做到這一點?Winform可以使用backgroundworker並行運行功能嗎?
0
A
回答
1
爲此,您可以使用BackgroundWorker
,但我會建議Task Parallel Library。你想要的東西,你可以使用類似下面的
TaskCreationOptions atp = TaskCreationOptions.AttachedToParent;
Task.Factory.StartNew(() =>
{
Task.Factory.StartNew(() => { SomeMethod() }, atp);
Task.Factory.StartNew(() => { SomeOtherMethod() }, atp);
}).ContinueWith(cont => { Console.WriteLine("Finished!") });
這是使用的子任務,在這裏我有兩個,你會使用4。有一些限制需要注意,因爲TPL使用線程池,它限制了真正的併發操作的數量。請檢查該https://stackoverflow.com/a/11229896/626442和第三方物流企業和通用線程的詳細信息請參見
和(第三方物流專)
0
最好的方法是使用Task
s,這是BackgroundWorker
更換你可以看到如何從一個Task
這裏彙報進展:http://nitoprograms.blogspot.co.il/2012/02/reporting-progress-from-async-tasks.html
+0
好吧,這告訴我有關報道,但我如何實際啓動事件背後的多個後臺任務,並等待它完成? – user1514077 2012-07-11 09:13:42
1
是,使用任務並行庫。你可以並行運行的任務,如
Parallel.Invoke(() => DoSomeWork(),() => DoSomeOtherWork());
而且它爲您提供了比後臺工作更多的選擇
更多參考:TPL
相關問題
- 1. junit測試可以並行運行嗎?
- 2. 可以並行運行Junit測試嗎?
- 3. 可以Resque並行運行作業嗎?
- 4. 你可以並行運行Xcuitests嗎?
- 5. nspec可以運行並行測試嗎?
- 6. 可以並行運行iis6和iis7嗎?
- 7. 並行運行功能
- 8. 可以使用xargs並行運行多個任意命令嗎?
- 9. 我可以調用正在運行的Windows服務功能嗎?
- 10. 您可以在雲中運行winform應用程序嗎?
- 11. winform可以從citrix運行C#應用程序嗎?
- 12. 我可以添加回調到已經運行的BackgroundWorker嗎?
- 13. 該功能可以執行嗎?
- 14. 運行功能串行和並行
- 15. 可以並排運行IIS和Tomcat嗎?
- 16. 我可以使用Fabric來運行virtualenv並運行Python應用程序嗎?
- 17. 我可以使用useLegacyV2RuntimeActivationPolicy運行scriptcs嗎?
- 18. sqoop可以不使用hadoop運行嗎?
- 19. 您可以使用JRockit運行glassfish嗎?
- 20. 使任意功能運行安全嗎?
- 21. 可以使用valgrind成功運行mtrace嗎?
- 22. 運行功能之前可以檢查多個空白嗎?
- 23. 我可以在PhantomJS中運行網頁的JavaScript功能嗎?
- 24. 我可以在運行時更改Button或TextView的功能嗎?
- 25. 我可以檢索在間隔中運行的功能嗎?
- 26. 運行功能使用jquery
- 27. 並行運行cucumberJS功能文件
- 28. 並行運行Winform和XNA遊戲
- 29. 我們可以使用Outlook插件創建並運行宏嗎?
- 30. BackgroundWorker適合長時間運行嗎?
有大量的信息,這一切都在WWW。我會建議一個更完整的搜索之前,在這裏問這樣的問題... – MoonKnight 2012-07-11 09:08:16
我沒有找到任何例子,其中parallel.invoke用於後臺工作。我猜你不能在後臺工作人員中完成多項任務嗎?......有理由問我是否在正確的軌道上。我嘗試了通過在clickbutton事件後面啓動線程,任務和parallel.invoke來運行四個函數,但都沒有工作,因爲我試圖實現parllel exectuion,但我正在按順序執行。我想知道如果我開始後臺線程/任務/ parallel.invoke做錯了什麼。只要我不更新屏幕上的任何東西,這應該工作。 – user1514077 2012-07-11 12:21:47