以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]PictureBox内存不足 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85183) |
-- 作者:nblwar -- 发布时间:2016/5/19 14:56:00 -- [求助]PictureBox内存不足 PictureBox, Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "图像文件|*.JPG" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim img As Image = GetImage(dlg.FileName) Dim pbx As WinForm.PictureBox = e.Form.Controls("PictureBox1") If img IsNot Nothing Then pbx.Image = img 当加载的图像文件比较大,比如我加载一个50多M的图像,重复加载几次之后,就会出现内存不足的错误,必须用360加速球加速后才能继续使用
[此贴子已经被作者于2016/5/19 15:09:49编辑过]
|
-- 作者:nblwar -- 发布时间:2016/5/19 14:58:00 -- 而且从任务管理器里看进程,每加载一次图片,狐表进程的内存就会往上涨,却不会掉下来 |
-- 作者:大红袍 -- 发布时间:2016/5/19 15:39:00 -- 方法一:
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 |
-- 作者:大红袍 -- 发布时间:2016/5/19 15:42:00 -- 方法二:
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 End If |
-- 作者:nblwar -- 发布时间:2016/5/19 15:56:00 -- 方法一测试有效,方法二测试无效,谢谢 |
-- 作者:大红袍 -- 发布时间:2016/5/19 16:28:00 -- 方法二:肯定有效。每次都会把上一次的img的内存清空。如果你直接关闭窗口,你还要在beforeClose事件,清空一次 |
-- 作者:haotinghua -- 发布时间:2019/7/18 17:50:00 -- PictureViewer的回收方法呢 |
-- 作者:有点蓝 -- 发布时间:2019/7/19 8:30:00 -- 这个没有办法处理。可以在窗口关闭的时候调用一下GC.Collect() |
-- 作者:xuezxz -- 发布时间:2020/2/12 11:58:00 -- |