MVVM -视图模型和数据服务,任务应该位于其中



我目前正在WPF/MVVM中开发dataservice模式,其中ViewModel调用包含所有业务对象和方法的服务

现在,当我调用service方法时,这需要一点时间,所以我应该创建一个新的Task,以使GUI不冻结。

在你看来,在哪里是最好的位置开始一个任务,在ViewModel或在服务本身?

...
// TaskFactory.StartNew(() => {}); // where I should put this ? *
...
class DataService
{
    MyBussObj mbo;
    CallBusinessOperation()
    {
        // * here ?
        while (mbo.Next())
        {
            // requires a while
        }
    }
}
class MyViewModel
{
    DataService service = new DataService();
    void DoIt()
    {
        // * here ?
        service.CallBusinessOperation();
    }
}   

我将在视图模型中创建并启动任务。

理论上,你可以在视图模型中启动3个不同的任务,只有当所有或第一个任务完成时才更新UI。在这种情况下,视图模型负责控制流。

如果服务方法实现本身具有需要异步访问其他几个服务的控制逻辑,我将在那里启动各自的任务。

总而言之,我将从控制逻辑所在的任务开始。

我会在ViewModel中这样做,因为这样您就可以轻松刷新ProgressChanged或其他任何您想要的属性。

相关内容

  • 没有找到相关文章

最新更新