MVVM Light WeakAction <tmessage>实例在视图模型清理后仍在内存中</tmessage>

时间:2014-06-03 12:07:26

标签: memory-leaks mvvm-light

我是MVVM Light的新手,我觉得我遇到了意想不到的行为。

使用内存分析器我注意到在视图模型上调用清理后,它扩展了ViewModelBase并注册为多个消息类型的接收者,所有WeakAction实例仍在内存中。

我看到ViewModelBase.Cleanup()应该完全取消注册视图模型作为邮件收件人,但我也看到Messenger.Unregister(对象收件人)不会调用RequestCleanup(),而所有其他Unregister重载都会。 在我的视图模型的清理覆盖中显式调用RequestCleanup方法似乎可以解决问题,因为所有WeakAction实例几乎都会立即从内存中释放。

有人可以告诉我这是预期的行为还是错误?

0 个答案:

没有答案