gpt4 book ai didi

位图中的 C# 内存泄漏

转载 作者:太空狗 更新时间:2023-10-29 22:16:27 25 4
gpt4 key购买 nike

我的应用程序在这行内存泄漏。如果我查看任务管理器,每次触发此进程时,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());在此之后,应用程序停止运行......

屏幕应用: enter image description here

最佳答案

更新:本身您没有内存泄漏,您只需等待垃圾收集器释放资源即可。

如果您确实想让垃圾收集器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

关于位图中的 C# 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14957896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com