c#内存清理

来源:互联网 发布:单片机和微处理器功能 编辑:程序博客网 时间:2024/06/01 23:59

在c#中窗口关闭后并不会立即清理关闭了的窗口的内存,这样操作频繁开启关闭子窗口时,内存不断增大的情况。需要借助win api函数对于已经没用的内存进行清理。

清理方法:

 public static class ClearMemoryInfo
    {
       [DllImport("kernel32.dll")]
       private static extern bool SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);


       /// <summary>
       /// 强制清理内存
       /// </summary>
       public static void FlushMemory()
       {
           GC.Collect();
           GC.WaitForPendingFinalizers();
           if (Environment.OSVersion.Platform == PlatformID.Win32NT)
               SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);
           //System.Diagnostics.Process.GetCurrentProcess().MinWorkingSet = new System.IntPtr(5);
       }






    }

0 0
原创粉丝点击