【发布时间】:2011-02-01 14:48:29
【问题描述】:
我们正在使用 SL4、PRISM 和 MVVM 构建一个 LOB 应用程序。我最近注意到我的应用程序没有释放任何内存。它从大约 150MB 开始,如果我切换黑白页面,它会很快增长到 1GB+。我们的设计涉及 3 个模块,每个模块都有一个 Controller 类(Unity 单例),它监听事件并将视图注入适当的区域。因此,当触发事件以注入视图时,这些控制器中会发生这种情况。
var v = Container.resolve<view>()
var vm = Container.resolve<viewmodel>()
v.datacontext = vm;
myregion.addtoregion(v);
因此对该视图的 100 次调用将执行 100 次。在 addviewregion 方法中,我在添加新视图之前删除了所有现有视图。在看到内存问题后,我在 addviewtoregion 方法中将 view 和 viewmodel 都设置为 null,以便删除所有需要删除的视图。仍然内存消耗是相同的。 Unity ContainerControllled... 对象(我的控制器)是否持有对这些对象的引用?
【问题讨论】:
标签: silverlight mvvm unity-container prism