C#内存整理

 private static void GC_re()
  {
   //每30秒整理一下内存
   while(true)
   {
    
    System.Threading.Thread.Sleep(30000);
    ClearMemory();
    //回收内存资源
    System.GC.Collect();
    GC.WaitForPendingFinalizers();
    
   }
  }
  public MainEntry()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }
  [DllImport("psapi.dll")]
  static extern int EmptyWorkingSet(IntPtr hwProc);//key way
  //
  public static void ClearMemory()
   
  {
   //string ps="";
   System.Diagnostics.Process[] process;//这个数组存放当前的所有进程信息
   process = System.Diagnostics.Process.GetProcesses();//取得进程信息
   
   for (int i = 0; i < process.Length; i++)
   try
   {
     //ps+="/n"+process[i].Handle.ToString();
     EmptyWorkingSet(process[i].Handle);//依次释放每个进程的内存
   }
   catch
   {
    //GC.Collect();
    //GC.WaitForPendingFinalizers();
    //MessageBox.Show(ex.ToString()+ps);
   }
  }

你可能感兴趣的:(C#)