我正在Silverlight 中为Windows Phone 7 开发一个应用程序。我陷入了Windows Phone 应用程序中非常常见的问题,但无法以任何方式摆脱它。这是从第一页到第二页、从第二页到第一页等多次导航时出现的内存泄漏问题。
为了解决这个问题,我创建了一个有 2 个空白页的新项目。每页有 2 个文本块用于打印当前内存和峰值内存,以及一个用于移动到下一页或上一页的按钮。当从第 1 页导航到第 2 页时,我对所有 3 件事进行空引用并调用 gc.collect 来销毁页面引用。同样,从第 2 页移到第 1 页时,我做同样的事情。
我还尝试每隔 500 毫秒在计时器中调用 gc.collect(),但仍然没有结果。如果我完全删除 gc.collect(),内存会增加 MB,所以我认为这是必须的。