码迷,mamicode.com
首页 > 其他好文 > 详细

释放内存

时间:2020-07-29 10:30:16      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:ntp   rgs   问题   按钮   env   handle   min   vat   bsp   

winform中如果每次打开的窗体都是通过new出来的,发现几次过后就会出现提示”内存不足“问题,那么在关闭窗体的时候怎么处理可以及时释放内存?dispose方法可能也无法解决这个问题。我们可以每次在关闭窗体的时候刷新存储器来彻底释放内存。

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;

[DllImport("kernel32.dll")]
private static extern bool SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);
//关闭窗体按钮 
private void btnReturn_Click(object sender, EventArgs e)
{
  this.Close();
  FlushMemory();
}
//刷新存储器
private static void FlushMemory()
{
  GC.Collect();
  GC.WaitForPendingFinalizers();
  if (Environment.OSVersion.Platform == PlatformID.Win32NT)
  {
    SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);
  } 
}

 

 

方法2:
[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); } }

 

释放内存

标签:ntp   rgs   问题   按钮   env   handle   min   vat   bsp   

原文地址:https://www.cnblogs.com/romanticcrystal/p/13394999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!