我正在开发一个中等规模的WPF应用程序,使用MVVM模式。 ViewModels使用INotifyPropertyChanged
刷新它们各自的View。
这种方法非常有效,但有一个问题:当该应用程序长时间运行(3-7天)时,所有的Views(整个应用程序中的每一个View!)突然停止更新其绑定的属性。
如果我在ViewModels中设置断点,它们会很高兴地调用PropertyChanged
,就好像没有任何问题一样。 但是,如果我在View绑定到的ViewModel对象的getter中设置断点,则getter永远不会被调用!
我现在被难住了,甚至不知道如何正确地调试此问题。 我已经检查了Visual Studio输出窗口中是否有数据绑定错误,但一切都看起来正常。 就好像WPF数据绑定引擎在后台崩溃了一样。 此应用程序还监视未处理的异常(AppDomain.UnhandledException
和Dispatcher.UnhandledException
),但没有抛出任何异常。
总结:长时间运行后,View停止更新其数据绑定,但ViewModels仍在调用PropertyChanged事件。
有什么建议吗???
ExecutionEngineException
。 - H.B.