C#释放内存的方法
原文:https://blog.csdn.net/zsy619/article/details/79181719
---------------------
如何释放内存:
[DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")] public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize); /// <summary> /// 释放内存 /// </summary> public static void ClearMemory() { GC.Collect(); GC.WaitForPendingFinalizers(); if (Environment.OSVersion.Platform == PlatformID.Win32NT) { SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1); } }
如何获取当前应用占用的内存大小:
/// <summary> /// 释放内存 /// </summary> public static void ClearMemory() { //获得当前工作进程 Process proc = Process.GetCurrentProcess(); long usedMemory = proc.PrivateMemorySize64; if (usedMemory > 1024 * 1024 * 20) { GC.Collect(); GC.WaitForPendingFinalizers(); if (Environment.OSVersion.Platform == PlatformID.Win32NT) { SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1); } } }