wpf 内存减少使用 GC回收

代码

App.xaml.cs

    protected override void OnStartup(StartupEventArgs e)
    {    
//新增内存回收
this.MemoryHelper();
}

 

复制代码
  private void MemoryHelper(int second = 30)
  {
      Thread t = new Thread(() =>
      {
          while (true)
          {
              try
              {
                  FlushMemory();
                  Thread.Sleep(TimeSpan.FromSeconds(second));
              }
              catch (Exception)
              {
              }
          }
      });
      t.Start();
  }

  [DllImport("kernel32.dll")]
  private static extern bool SetProcessWorkingSetSize(IntPtr proc, int min, int max);

  private void FlushMemory()
  {
      GC.Collect();
      GC.WaitForPendingFinalizers();
      if (Environment.OSVersion.Platform == PlatformID.Win32NT)
      {
          SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);
      }
  }
复制代码

 

 效果:

 

posted @   JohnnyLei  阅读(155)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示