【发布时间】:2013-12-24 14:28:24
【问题描述】:
所以我正在创建一个程序,在我在运行时创建的图片框中显示来自互联网的图片。我为每张图片创建一个图片框,屏幕上一次有 6 个图片框。但问题是,当我向下滚动时,加载的图片越来越多,导致程序占用大量内存。所以我想知道如何在不处理图片的情况下“卸载”已经通过的图片,这样我就可以再次上去查看它们而无需再次从网络服务器检索它们(如果这甚至可能的话)。如果我是正确的,这应该会减少内存消耗。
我添加这张图片可能有助于理解问题。
【问题讨论】:
-
下一个和上一个按钮一次只加载 6 个怎么样?
-
不要存储整个图像,调整它的大小使其适合盒子,因此需要更少的内存。
-
@DonA 是的,这会起作用,但是能够向下滚动而不是单击下一个和上一个将是有益的,如果我没有收到其他回复,我可能会使用它,谢谢:)
-
@HansPassant 我目前正在这样做,我缩放图片以适应 250x250 的图片框,但是当您加载 1000 多张图片时,它开始占用大量内存
-
显示/隐藏很容易。释放分配给图片的内存资源也不太复杂。但是您想释放内存而不必再次加载图片?!这是不可能的。您可以做的是在不可见时删除图片(并释放内存资源)并在需要时再次加载它们;但图片必须存储在某个地方(在内存或磁盘中,您必须从中加载它们)。
标签: vb.net picturebox