C# 釋放內存的方法


如何釋放內存:

 1 [DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")]  2 public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);  3 
 4 /// <summary>
 5 /// 釋放內存  6 /// </summary>
 7 public static void ClearMemory()  8 {  9      GC.Collect(); 10      GC.WaitForPendingFinalizers(); 11      if (Environment.OSVersion.Platform == PlatformID.Win32NT) 12      { 13          SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1); 14      } 15 }

如何獲取當前應用占用的內存大小:

 1 /// <summary>
 2 /// 釋放內存  3 /// </summary>
 4 public static void ClearMemory()  5 {  6      //獲得當前工作進程
 7      Process proc = Process.GetCurrentProcess();  8      long usedMemory = proc.PrivateMemorySize64;  9      if (usedMemory > 1024 * 1024 * 20) 10      { 11          GC.Collect(); 12          GC.WaitForPendingFinalizers(); 13          if (Environment.OSVersion.Platform == PlatformID.Win32NT) 14          { 15              SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1); 16          } 17      } 18 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM