我的应用程序中出现了内存泄漏。如果我查看任务管理器,每次触发此进程时,RAM 内存都会增加 +- 300 MB。
Bitmap bmp1 = new Bitmap(2480, 3508);
panel1.DrawToBitmap(bmp1, new Rectangle(0, 0, 2480, 3508));
pictureBox2.Image = bmp1;
有人可以帮我解决他的泄漏问题吗?如果我使用:
bmp1.Dispose();
我在“Program.cs”中的这一行遇到异常:Application.Run(new Form1());
此后,应用程序停止运行......
Screen application:
Update:你没有内存泄漏per se,你只需要等待垃圾收集器释放资源即可。
If you do想要制作垃圾收集器collect
不过,你可以这样做:
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
为什么需要处理位图?如果您的 PictureBox 正在使用它,那么您需要位图。如果您对其进行了很多更改,也许您应该将旧位图换成新位图并处理掉旧位图:
Bitmap bmp1 = new Bitmap(2480, 3508);
panel1.DrawToBitmap(bmp1, new Rectangle(0, 0, 2480, 3508));
Image img = pictureBox1.Image;
pictureBox1.Image = bmp1;
if (img != null) img.Dispose(); // this may be null on the first iteration
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)