【发布时间】:2011-11-15 14:45:10
【问题描述】:
考虑以下应用架构:
UI(视图)线程创建一个 ViewModel。
ViewModels 构造函数请求业务逻辑对象(提供者)开始从存储中检索数据。
它通过订阅提供者的 DataRecieved 事件并调用 StartRetrievingData() 方法来实现。
Provider 在 StartRetrievingData() 方法体中创建一个后台线程,循环获取数据并在循环体中引发 DataRecieved 事件,将实际数据对象作为自定义 EventArgs 公共字段传递。
链接到 DataRecieved 事件的 ViewModel 方法,然后更新绑定到该 UI 元素的 observableCollection。
问题是:
MVVM 实现之类的架构一切正常吗?
我应该在什么时候进行线程同步,即调用 Deployment.Current.Dispatcher 来调度源自后台线程的调用以更新 UI?
【问题讨论】:
标签: c# .net multithreading architecture mvvm