Fork me on GitHub
如何立即回收内存C#

C#如何立即回收内存

1.把对象赋值为null

2.立即调用GC.Collect();
 
注意:这个也只是强制垃圾回收器去回收,但具体什么时候执行不确定。 
 
代码:
 
 
[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize", ExactSpelling = true, CharSet =System.Runtime.InteropServices.CharSet.Ansi, SetLastError = true)]
        private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int maximumWorkingSetSize);

 #region 内存回收
   public  void ClearMemory()
 {
     GC.Collect();
     GC.SuppressFinalize(this);
 
 
     if (Environment.OSVersion.Platform == PlatformID.Win32NT)
     {
         SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
     }
 }
 #endregion

ClearMemory();

 

 

https://blog.csdn.net/xwnxwn/article/details/78009071

posted on 2019-09-11 18:14  HackerVirus  阅读(757)  评论(0编辑  收藏  举报