zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Linux命令之more
    Linux命令之sort
    STM32启动模式
    poll调用深入解析
    STM32 控制步进电机 28BYJ-48
    NEC协议
    家用宽带的上传和下载速度
    Ubuntu14.04更新源
    波特率和比特率【串口为例】
    CentOS: make menuconfig error: curses.h: No such file or directory
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14275706.html
Copyright © 2011-2022 走看看