原文: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); } } }