我在c#中有一個多層應用程序,應該在數據庫上執行任務(如果第一次使用,我們可能會創建數據庫並填充一些數據)。當我最初設計應用程序時,我沒有考慮可能的進度條控制,更不用說任何類型的進度報告了。我如何修改應用程序的設計以便能夠將數據庫操作進度報告給UI層?有沒有可重用的解決方案,並且不會強制我修改我的所有功能,以便爲報告提供額外的輸入信息?設計多層應用程序使用進度條
1
A
回答
0
否。根據您的應用程序的大小,您有很多工作要做。
要使工作進度報告,需要執行工作的代碼,以便在工作單元完成時引發事件。該事件需要在UI層進行處理並更新進度指示器。
一個很好的開始就是使用BackgroundWorker進行研究(這裏有一個MSDN的例子 - http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx)。一旦熟悉BackgroundWorker,您應該能夠更好地決定需要對應用程序進行哪些更改。
0
您可以修改服務器代碼,以便它更新服務器端的進度信息(不更改功能簽名),然後使用單獨的方法分別查詢此信息。
這將允許您改進對進度的支持,而不會對您對服務器的現有調用產生任何影響,只需在UI上添加新的後臺線程以檢查更新的進度信息,而長時間運行的任務正在進行中。
編輯:我想同樣的方法將適用於發生在客戶端的任務。但是,靜態進度指示器類也可以在這裏使用。
1
正如Greg所說,未來還有很多工作要做。但是,解決問題的方法有很多,最適合您的方法取決於已經從客戶端傳遞到應用程序/數據庫層的上下文信息。例如,如果會話令牌或事務標識符在執行查詢/事務的正常過程中從客戶端傳遞到應用程序,或者從應用程序異步地傳回到客戶端的確認引用,那麼對於那些針對其的查詢/事務進度報告是必要的,您可以讓應用程序更新客戶端可以查詢的狀態表。這可以減少所需的重新工作量。基本上,您需要考慮已有的「中間件」,並查看是否有任何可用於跨層次交易的關聯。
相關問題
- 1. 從業務層窗口更新進度條應用程序
- 2. N層應用程序設計工具
- 3. 使用PHP的多層應用程序?
- 4. 設計多層應用程序(模板樣式)
- 5. 如何使用Docker進行多層應用程序部署?
- 6. 設置應用程序中的進度條
- 7. 在c#windows應用程序中使用進度條
- 8. 如何在WinForm應用程序中使用進度條C#
- 9. 進度條設計模式?
- 10. 如何在XUL應用程序中使用進度計?
- 11. Windows多窗體應用程序設計
- 12. 多個子域應用程序設計
- 13. 開發多層高可用性Web應用程序時應考慮哪些應用程序設計方面?
- 14. 設計多線程應用程序(尋找設計模式)
- 15. 任何應用設計模式進行多線程的開源應用程序?
- 16. 多層web應用程序和多層web應用程序有什麼區別?
- 17. 如何在python中使用redis設計多進程程序
- 18. 使用XML的應用程序設計
- 19. 使用CMS設計Web應用程序
- 20. iOS應用程序設計 - 用於圖層的Cocoapods
- 21. 多態性和多層應用程序
- 22. 設計:ORM和應用層
- 23. 進度條是否會減慢應用程序的速度?
- 24. 使用更多混淆代碼設計應用程序?
- 25. facebook應用程序設計?
- 26. 設計Web應用程序
- 27. Android設計應用程序
- 28. Web應用程序設計
- 29. AIR應用程序設計
- 30. ios應用程序設計
祝你好運。 (報告)進度很難 – SLaks 2010-12-13 03:31:02