【发布时间】:2015-02-08 12:14:28
【问题描述】:
我有一个大项目,我的应用程序一直保留我导航离开的页面。该页面仅使用最少,并且有很多图形,因此我希望将其从内存中完全删除。
因此我使用了以下
NavigationService.RemoveBackEntry();
使用我看到的分析器,上面的 sn-p 确保我只有 1 个页面实例。但由于它的图形很重,我仍然希望它完全从内存中删除,即分析器中没有实例。
在我的大型应用程序中,我尝试取消订阅所有事件,引入 dispose/finalize 并调用 GC,它有所帮助,但实例仍然存在。
为了排除任何愚蠢的错误,我做了this small sample。仅使用内存弹出检查器在两个哑页面之间导航。但是仍然存在 1-2 个页面实例。是否有强制删除页面以使其没有任何内容存储在内存中的方法?
我已添加:
while (App.RootFrame.RemoveBackEntry() != null) ;
到 OnNavigated to,它会删除除我开始的第一页之外的所有页面。我使用了调试分析工具包,可以看到无论我从哪个页面开始,当我离开它时,它都不会被删除。
【问题讨论】:
-
似乎不起作用
-
想知道您是否尝试过将该页面的
NavigationCacheMode设置为Disabled?
标签: c# silverlight memory navigation windows-phone