【问题标题】:UWP Memory leaks on Navigation Page导航页上的 UWP 内存泄漏
【发布时间】:2018-10-14 15:41:59
【问题描述】:

我曾尝试开发 UWP 应用程序,但我发现内存泄漏有很多问题,使用简单的项目从页面切换到其他页面时,使用 Visual Studio 诊断程序内存不是空闲的。其他用户有同样的问题吗?

为了重现问题,我准备了一个示例项目

http://www.fasthomestore.it/UWPNavigation.zip

编译,启动项目,启动visual studio diagnostic,等待30分钟,内存不断增加

【问题讨论】:

标签: xaml uwp winrt-xaml


【解决方案1】:

您可能需要将NavigationCacheMode 设置为RequiredEnabled,默认情况下,此值为Disabled,这意味着 页面永远不会被缓存,每次访问都会创建一个新的页面实例

public SecondPage()
{ 
    this.InitializeComponent();
    this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Required;
     ...
    //this.Unloaded += SecondPage_Unloaded; 
} 

private void OnTick(object sender, object args)
{
    //_timer.Stop();
   ...
}

这不会在每次页面导航时创建一个新实例。更多详情请参考Page.NavigationCacheMode属性。

【讨论】:

  • 如果我不想缓存页面怎么办。如何调用垃圾回收器释放内存?
  • 您可以在页面的 OnNavigateTo 函数上调用 GC.Collect,更多内容请阅读docs.microsoft.com/en-us/dotnet/api/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 1970-01-01
  • 2021-01-14
相关资源
最近更新 更多