欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# winform在关闭窗体的时候及时释放内存问题

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

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);
  } 
}