1
我們正在使用SL4,PRISM和MVVM構建LOB應用程序。我最近注意到我的應用程序沒有釋放任何內存。如果我切換黑白頁面,它開始大約150MB,增長到1 GB +非常快。我們的設計涉及3個模塊,每個模塊都有一個控制器類(Unity單例),它監聽事件並將視圖注入適當的區域。所以當事件觸發注入視圖時,這是控制器中發生的事情。silverlight棱鏡/統一內存泄漏
var v = Container.resolve<view>()
var vm = Container.resolve<viewmodel>()
v.datacontext = vm;
myregion.addtoregion(v);
因此100個這個視圖的調用將會優化100次。在addviewregion方法中,我將在添加新視圖之前刪除所有現有視圖。在看到內存問題後,我將addviewtoregion方法中的viewmodel視圖設置爲null,以便刪除所有視圖。仍然消耗內存是相同的。 Unity ContainerControllled ...對象(我的控制器)持有對這些對象的引用嗎?
這是一個可能的原因。您應該對事件聚合器事件使用弱事件處理 – 2011-02-01 20:16:01