PictureBox遇到“对象当前正在其他地方使用“错误

        昨天晚上快睡觉的时候,闲鱼遇到一个买家来询问PictureBox遇到"对象当前正在其他地方使用"错误。但是又无法给源码,只说了是多线程显示图片,而且频繁切换图片,所以不好确定原因。从错误的描述来看应该就是抢夺资源造成的,可能是图片资源也可能是控件资源。因为没有代码也无法立刻给解决问题。所以今天早上特地试着写了一下,终于复现了这个错误。

        1.错误示范

2个线程,操作同一个picturebox,而且同时调用,再写个延时,让2个线程错开来。没跑几秒就出现了这个错误。2个线程在同一时刻抢夺控件造成的问题。而且运行时间久了必然会造成内存溢出的问题。

        2.正确写法

当多线程控制同一个picturebox时,在赋值过程中,锁定控件,以免造成抢夺的情况。经过实验,跑了10分钟没问题。而且显示更及时。

        总结

可能遇到这个错误没有多线程控制同一个控件,那就需要看看是不是用到了同一个流或者同一张图片,一切共用的资源都会被抢夺。

有问题可联系qq1124391467

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值