C#Winform中,开了一个线程,对PictureBox切换图片,抛出Object is currently in use elsewhere的错误,?
线程是一个无限循环线程,在Form上会有10个PictureBox,线程每次执行回去抓取一些状态,根据状态的改变会切换PictureBox的Image,但是有时会抛出上面...
线程是一个无限循环线程,在Form上会有10个PictureBox,线程每次执行回去抓取一些状态,根据状态的改变会切换PictureBox的Image,但是有时会抛出上面的异常。我的图片是用ImageList保存的,请各位大侠赐教,谢谢!
现在基本上已经排除是多线程问题,因为我的线程是在判断一个条件,如果该条件不满足的话,它会一直判断,直到满足线程後面的东西才会继续执行;就是如下面的语句:
PictureBox.Image=ImageList.Images[index];
任何的回答都非常感谢
我知道 是对象正在被使用的问题!说一下我的大概思路是这样的:我自己写了一个简单的控件TextImage,就是一个Label和一个PictrueBox的组合,然後我会去数据库抓取一些数据,根据数据的不同,我会生成很多的TextImage(数量不确定),然後根据数据的状态栏位,我会选择不同的图片来作为PictureBox的Image,并且将这些TextImage添加到Panel中。当然这些操作都是在一个独立的线程中完成的。第一次绑定完数据后,接下来线程会不停的抓取数据,然後判断其状态,来改变Image。执行的时间短的话不会报出错误,一般就是1天作用的时间就会抛出异常。对於"HB_hzhj "说的释放index,不可能吧?
一张图片可能被很多的PictureBox在使用,所有你说的应该是不可能的。对於"灰人王"的要求不能满足哈,因为这是公司的东西,别说不能发,就是能发也发不出去,公司管控的严得很,超过20M的东西都发布出去。对於"电驴侠"的方法,我觉得也不能实现,因为不可能把所有的PictureBox的Image置空,那样可能就得重新给每一个换图片,到时候的情况可能比现在更难弄,望各位给出更好的建议。谢谢 展开
现在基本上已经排除是多线程问题,因为我的线程是在判断一个条件,如果该条件不满足的话,它会一直判断,直到满足线程後面的东西才会继续执行;就是如下面的语句:
PictureBox.Image=ImageList.Images[index];
任何的回答都非常感谢
我知道 是对象正在被使用的问题!说一下我的大概思路是这样的:我自己写了一个简单的控件TextImage,就是一个Label和一个PictrueBox的组合,然後我会去数据库抓取一些数据,根据数据的不同,我会生成很多的TextImage(数量不确定),然後根据数据的状态栏位,我会选择不同的图片来作为PictureBox的Image,并且将这些TextImage添加到Panel中。当然这些操作都是在一个独立的线程中完成的。第一次绑定完数据后,接下来线程会不停的抓取数据,然後判断其状态,来改变Image。执行的时间短的话不会报出错误,一般就是1天作用的时间就会抛出异常。对於"HB_hzhj "说的释放index,不可能吧?
一张图片可能被很多的PictureBox在使用,所有你说的应该是不可能的。对於"灰人王"的要求不能满足哈,因为这是公司的东西,别说不能发,就是能发也发不出去,公司管控的严得很,超过20M的东西都发布出去。对於"电驴侠"的方法,我觉得也不能实现,因为不可能把所有的PictureBox的Image置空,那样可能就得重新给每一个换图片,到时候的情况可能比现在更难弄,望各位给出更好的建议。谢谢 展开
4个回答
展开全部
一个image不能同时被两个picuturebox使用。
切换的时候,先把先前使用的PictureBox.Image=null
切换的时候,先把先前使用的PictureBox.Image=null
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
意思是:对象正在被其它地方使用. 你每次改完index后 释放一下试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
挺好玩的问题。能否把那个项目打个包发给我?我也来研究研究。jrlgz@foxmail.com
追问
其實,你可以多開一些線程,然後區執行同一函數,函數中就是PictureBox切換圖片,我試過的,也會發生那種錯誤,但是時間上可能不確定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询