我目前正在開始使用.NET Prism框架來開發WPF應用程序。我無法確定的一件事是實現對WCF服務或數據庫的異步調用的最佳方式?原因是,我不希望WCF /數據庫調用阻止UI線程,這會導致UI凍結直到操作完成。.NET Prism4 WVVM + WPF異步調用最佳實踐
從我的理解,應該是我的架構如下:
View (WPF) <=> View Model <=> Application Services <=> DB/WCF
難道我實現使用類似的AsyncDelegateCommand視圖模型的異步行爲?如果我這樣做,那麼我無法在應用程序服務中維護任何狀態,因爲設置任何狀態都需要在UI線程中完成(除非有解決方法)。
因此,另一種選擇是在應用程序服務中提供帶回調的異步方法,並讓應用程序服務爲異步操作生成線程/任務。
我簡要介紹了Prism StockTrader參考實現,他們似乎沒有異步執行任何操作。我覺得這應該是一個非常普遍的問題,並且必須有一些最佳實踐來解決這個問題。
哦,還有一件事......你並不需要一個「AsyncDelegateCommand」。 –