C# winform在关闭窗体的时候及时释放内存问题
程序员文章站
2022-06-30 13:33:47
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); } }