黑马程序员技术交流社区

标题: 刚学winform,问个picturebox的问题 [打印本页]

作者: 王子斌    时间: 2013-12-10 20:58
标题: 刚学winform,问个picturebox的问题
本帖最后由 王子斌 于 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;
复制代码

会很快的上升,然后就会报内存不足,请问有方法解决么
作者: 王子斌    时间: 2013-12-10 21:04
用插入代码老是出错。。好歹这次基本对了
作者: 为梦而生    时间: 2013-12-10 21:16

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


首先你得找到为什么报内存异常?
下面是我的理解。。。
每隔一段时间你就创建一个tp1的对象,这个对象是引用类型的,你给它重新赋值,老值又不会删除,肯定待得时间长了,就会出错。
你将两行代码写成一行,就不会出现这个结果了。。。。

作者: No_why    时间: 2013-12-10 22:09
picturebox报内存不足基本上是两种情况,一是路径不对,二是没限定文件类型
作者: 王子斌    时间: 2013-12-10 22:45
为梦而生 发表于 2013-12-10 21:16
首先你得找到为什么报内存异常?
下面是我的理解。。。
每隔一段时间你就创建一个tp1的对象,这个对象是 ...

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

谢谢,但是这两种可能性可以排除,图片加载是正常的,也已经加了过滤,只会打开jpg文件,应该是频繁的读取图片,驻留在内存的原因,但是就我目前的知识实在想不出解决方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2