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

 

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

        1.错误示范

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

 


        2.正确写法

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

 


        总结

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

有问题可联系qq1124391467

posted @ 2025-03-04 13:10  鲸鱼软件开发  阅读(34)  评论(0)    收藏  举报