任务完成前关闭WPF窗口

时间:2013-10-16 12:47:38

标签: c# wpf multithreading mvvm task-parallel-library

我正在开发一个项目,我正在使用Task对象从后台线程更新绑定属性(MVVM):

    Task.Factory.StartNew(() =>
        {
            // 1. Update bound control to indicate that data is being loaded

            // 2. Perform long running call

            // 3. Display the loaded data in the bound control
        });

上面的代码是我正在做的事情的要点。根据我收集的信息herehere我了解从任务线程更新我的View模型的属性不是问题 - 我对此没有任何问题。

我的问题是 - 在任务完成第2步之前,当包含绑定控件的窗口关闭时会发生什么?我没有收到任何错误,并且当我关闭窗口时,在步骤3中设置断点不会被击中。

1 个答案:

答案 0 :(得分:1)

在处置View后更新ViewModel没有任何问题。绑定将被WPF破坏,视图将不再与ViewModel连接。 PropertyChanged事件将被忽视。这就是MVVM的优点:当你在VM层工作时,你不必担心视图的作用。