A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王子斌 中级黑马   /  2013-12-10 20:58  /  1140 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王子斌 于 2013-12-14 14:33 编辑
  1. string[] dir = Directory.GetFiles(@"D:\Program Files\feiq\Recv Files\艾薇儿","*.jpg");
  2.             Random r = new Random();


  3.         private void timer1_Tick(object sender, EventArgs e)
  4.         {
  5.             int i = r.Next(0, dir.Length - 1);
  6.             Image tp1 = Image.FromFile(dir[i]);
  7.             pictureBox1.Image = tp1;
复制代码

会很快的上升,然后就会报内存不足,请问有方法解决么

5 个回复

倒序浏览
用插入代码老是出错。。好歹这次基本对了
回复 使用道具 举报

  1.             Image tp1 = Image.FromFile(dir[i]);
  2.             pictureBox1.Image = tp1;
复制代码


首先你得找到为什么报内存异常?
下面是我的理解。。。
每隔一段时间你就创建一个tp1的对象,这个对象是引用类型的,你给它重新赋值,老值又不会删除,肯定待得时间长了,就会出错。
你将两行代码写成一行,就不会出现这个结果了。。。。
回复 使用道具 举报
picturebox报内存不足基本上是两种情况,一是路径不对,二是没限定文件类型
回复 使用道具 举报
为梦而生 发表于 2013-12-10 21:16
首先你得找到为什么报内存异常?
下面是我的理解。。。
每隔一段时间你就创建一个tp1的对象,这个对象是 ...

谢谢 不过我刚开始就是只有一行代码,这样写是另一个同学给出的解决方法,我试了下,依然报内存不足,想了好久想不出解决方法,所以来问下
回复 使用道具 举报
No_why 发表于 2013-12-10 22:09
picturebox报内存不足基本上是两种情况,一是路径不对,二是没限定文件类型

谢谢,但是这两种可能性可以排除,图片加载是正常的,也已经加了过滤,只会打开jpg文件,应该是频繁的读取图片,驻留在内存的原因,但是就我目前的知识实在想不出解决方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马