我正在开发一个Windows 8本地应用程序。在应用程序中来回跳转一段时间后,我的应用程序会崩溃。分析后,使用内存分析器,我发现每次从一个页面导航到另一个页面时,尽管我将列表、WebClient、字符串等所有对象设置为null,并在NavigatedFrom事件中调用GC.Collect,但内存使用量仍然会增加。
首先,我认为这可能是由于图片引起的,因此我从应用程序中删除了图片并进行了测试,但应用程序的内存使用量仍然没有改变。不知何故,GC.Collect无法工作并释放内存。
我尝试了以下措施,但不幸的是都不能释放内存,结果仍然相同:
1. 在设置新源之前将图像UriSource设置为null,然后调用gc.Collect以释放内存使用量,但似乎没有释放它。 2. 其次,我将所有对象设置为null,并调用GC.Collect(),但仍然无法从手机应用程序的内存使用量中释放空间。 3. 我还尝试使用内存分析器进行分析,但无法追踪任何东西。
我已经阅读了所有帖子并实施了建议,但GC.Collect()似乎无法释放内存。是否有任何解决此问题的方法?如何释放从一个页面导航到另一个页面时占用的内存?
首先,我认为这可能是由于图片引起的,因此我从应用程序中删除了图片并进行了测试,但应用程序的内存使用量仍然没有改变。不知何故,GC.Collect无法工作并释放内存。
我尝试了以下措施,但不幸的是都不能释放内存,结果仍然相同:
1. 在设置新源之前将图像UriSource设置为null,然后调用gc.Collect以释放内存使用量,但似乎没有释放它。 2. 其次,我将所有对象设置为null,并调用GC.Collect(),但仍然无法从手机应用程序的内存使用量中释放空间。 3. 我还尝试使用内存分析器进行分析,但无法追踪任何东西。
我已经阅读了所有帖子并实施了建议,但GC.Collect()似乎无法释放内存。是否有任何解决此问题的方法?如何释放从一个页面导航到另一个页面时占用的内存?
NavigationService.Navigate
还是有时使用NavigationService.GoBack
?只要页面在后退堆栈中,它就会一直保留在内存中。 - Kevin Gosse