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置空,那样可能就得重新给每一个换图片,到时候的情况可能比现在更难弄,望各位给出更好的建议。谢谢
展开
 我来答
百度网友36de319
推荐于2018-05-06 · 超过16用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:50.6万
展开全部
如果是跨线程操作了。最好是使用Invoke+delegate委托处理控件。否则会出现很多诡异的异常
电驴侠
2011-11-02 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:138
采纳率:60%
帮助的人:57.5万
展开全部
一个image不能同时被两个picuturebox使用。
切换的时候,先把先前使用的PictureBox.Image=null
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拂晓的风
2011-11-02 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:137万
展开全部
意思是:对象正在被其它地方使用. 你每次改完index后 释放一下试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灰人王
2011-11-02 · TA获得超过2456个赞
知道大有可为答主
回答量:2401
采纳率:0%
帮助的人:936万
展开全部
挺好玩的问题。能否把那个项目打个包发给我?我也来研究研究。jrlgz@foxmail.com
追问
其實,你可以多開一些線程,然後區執行同一函數,函數中就是PictureBox切換圖片,我試過的,也會發生那種錯誤,但是時間上可能不確定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式