最新要闻
- 世界观热点:张奔斗:阳光双赛双四强 辛纳状态很“辛辣”
- 今日讯!男孩向女生水杯里放吸铁石 差点被喝下:医生称严重会胃穿孔
- 法国法芙娜脆珠+新鲜奶油 上行斋生巧福团狂促:8枚券后不到15元
- 精选!罗永浩将在淘宝直播间售卖民用卫星:最低200万起步
- ChatGPT也要带货?微软开始在新必应插入广告
- 环球微头条丨长期进食柿子山楂 胃中长出巨大“顽石” 医生巧用无糖可乐辅助尿毒症女子成功碎石
- 年轻人找工作不看工资看什么?一季度全国平均招聘月薪10101元 学历越高钱越多
- 世界新消息丨眼科医生自己真的都不做近视手术?
- 世界观天下!周上险量超5000 理想L系累计交付超10万台:其他新势力难了
- 热门美剧推动PS5销量大涨
- 专家提醒:千万不要侧躺玩手机 科普标准姿势
- 退役军人事务部调研组来洛 常正国带队
- 厚衣服先别收!强冷空气很快就到:今年来最大范围雨雪
- “基尼太美” 兰博基尼Revuelto亮相 马力超千匹 2.5秒破百
- 【独家焦点】Win12 UI设计曝光被苹果用户吐槽:抄袭macOS太明显
- 2022年房屋的主要卖点是什么
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
当前热讯:BitMap对象当前正在其他地方使用?加锁也没用?
最近在工作中遇到一个问题,就是我有多个线程会调用bitmap对象,运行的时候报错,对象当前正在其他地方使用。第一反应肯定是加锁啊,于是我就在每个用到bitmap的地方都加了锁,但是运行之后依然报这个错
测试代码如下
using System;using System.Drawing;using System.Threading;using System.Windows.Forms;namespace BitMapLockTest{ public partial class Form1 : Form { private Bitmap testBitmap; private static readonly object obj = new object(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { testBitmap = new Bitmap(100, 100); Thread th = new Thread(DrawBackGround); th.IsBackground = true; th.Start(); } private void DrawBackGround() { while (true) { lock (obj) { Graphics g = Graphics.FromImage(testBitmap); g.Clear(Color.White); g.Dispose(); } } } private void button1_Click(object sender, EventArgs e) { lock (obj) { Graphics g = Graphics.FromImage(testBitmap); g.FillRectangle(new SolidBrush(Color.FromArgb(100, 200, 2)), new Rectangle(new Point(0, 0), new Size(20, 20))); g.Dispose(); Updatepic(testBitmap); } } private void Updatepic(Bitmap bitmap) { if (pictureBox1.InvokeRequired) { Invoke(new Action(Updatepic), bitmap); } else { lock (obj) { pictureBox1.Image = bitmap; } } } }}
网上也有之类的问题,都是告诉我,不应该多线程使用bitmap对象,如果有需求,可以用bitmap.clone().
(相关资料图)
改了下
private void button1_Click(object sender, EventArgs e) { lock (obj) { Graphics g = Graphics.FromImage(testBitmap); g.FillRectangle(new SolidBrush(Color.FromArgb(100, 200, 2)), new Rectangle(new Point(0, 0), new Size(20, 20))); g.Dispose(); Updatepic((Bitmap)testBitmap.Clone()); } }
OK,不报错了。但我的疑问没解除啊
你得告诉我为啥锁不住啊?难道是lock(obj)写的不对?那我换成lock (testBitmap)总行了吧,依然报错。。。
后来我想了下。终于想明白了
问题出来这里
pictureBox1.Image = bitmap;
bitmap是个引用对象,把他赋值给pictureBox1的Image属性之后。pictureBox1所在的UI线程就一直保持了对bitmap对象的引用。所以别的线程加了锁也没用,依然会报错。
用clone方法复制对象的根本原因,就是避免了UI对原对象的引用。
我以为在所有引用bitmap的地方都加了锁不应该有问题了,却忘了。UI线程对其的引用。
低级错误。。。
关键词:
-
全球讯息:全网最详细中英文ChatGPT-GPT-4示例文档-读书书单推荐从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/cu
ChatGPT可以通过分析您的阅读需求和兴趣,为您推荐各种适合您的书籍清单,帮助您更好地理解和掌握相关知...
来源: 全球讯息:全网最详细中英文ChatGPT-GPT-4示例文档-读书书单推荐从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/cu
当前热讯:BitMap对象当前正在其他地方使用?加锁也没用?
全球今热点:履约核心引擎低代码化原理与实践
天天快资讯:Linux 修改系统时间的两种方式
快看点丨京东二面:线程池中的线程抛出了异常,该如何处理?大部分人都会答错!
世界观热点:张奔斗:阳光双赛双四强 辛纳状态很“辛辣”
今日讯!男孩向女生水杯里放吸铁石 差点被喝下:医生称严重会胃穿孔
法国法芙娜脆珠+新鲜奶油 上行斋生巧福团狂促:8枚券后不到15元
精选!罗永浩将在淘宝直播间售卖民用卫星:最低200万起步
ChatGPT也要带货?微软开始在新必应插入广告
环球微头条丨长期进食柿子山楂 胃中长出巨大“顽石” 医生巧用无糖可乐辅助尿毒症女子成功碎石
环球百事通!【网络安全软件】上海道宁与Cybereason为您提供未雨绸缪的攻击保护,终结对端点、整个企业以及网络上任何角落的网络攻击
环球速读:1.redis的基本使用
全球简讯:前端设计模式——依赖注入模式
年轻人找工作不看工资看什么?一季度全国平均招聘月薪10101元 学历越高钱越多
世界新消息丨眼科医生自己真的都不做近视手术?
世界观天下!周上险量超5000 理想L系累计交付超10万台:其他新势力难了
热门美剧推动PS5销量大涨
专家提醒:千万不要侧躺玩手机 科普标准姿势
退役军人事务部调研组来洛 常正国带队
天天观热点:Linux的3个文件时间
Cursor,程序员的 AI 代码编辑助手
厚衣服先别收!强冷空气很快就到:今年来最大范围雨雪
“基尼太美” 兰博基尼Revuelto亮相 马力超千匹 2.5秒破百
【独家焦点】Win12 UI设计曝光被苹果用户吐槽:抄袭macOS太明显
2022年房屋的主要卖点是什么
3月份国有大行二级资本债密集发行 专家称大型银行与中小银行发债规模将明显分层
邮储银行450亿元定增落地 中国移动溢价逾40%“通吃”
世界讯息:鹰眼自爆伤情
天天观速讯丨读SQL进阶教程笔记02_三值逻辑和NULL
【全球热闻】结石痛怎么缓解_尿道结石疼痛怎么缓解
汽车雷达在无人陵园内显示全是人影 网友吐槽更智能了:官方回应
观天下!1W字长文:K8S Ingress 原理和实操
简讯:mvc-mvp-mvvm架构调研及实现--分布式课程思考题--zzb
【Visual Leak Detector】配置项 SkipHeapFreeLeaks
Unity 中的存档系统(本地存档)
最新消息:IDEA2023.1破解 永久激活 最新版IDEA激活 亲测可用!
突破10GB/s!影驰首款PCIe 5.0 SSD开卖:2TB售价2499元
热门:2.1s破百!100万的新款特斯拉 快得我差点吐了
世界今亮点!苹果WWDC大会定档6月6日:iOS 17无悬念、MR头显最受期待
达墨国产PCIe 5.0 硬盘2TB 1899元 官方坦诚提醒:谁买谁冤种
当前速看:飞艇事件的背后
世界热文:搞笑动漫日和在线观看(搞笑动漫日和)
天天新资讯:Ubuntu18.04系统安装nginx
天天速递!手撕HashMap(二)
【Visual Leak Detector】配置项 TraceInternalFrames
苹果推出的美国版花呗:被严重低估了
全球聚焦:为什么洗澡时总想“尿尿”?这怀习惯可不好!
环球信息:新一代高贵“亮机卡”!RTX 4050被曝6月发布:弱得不像话
【世界报资讯】 “大号MINI”!五菱缤果正式上市:5.98万元起
国产特有 魔改RTX 3060显卡999元:AMD也做不到的性价比
天天通讯!报告:电信业采购供应链发展呈现四大趋势
【独家】【Visual Leak Detector】配置项 StartDisabled
78.类型转换
环球快报:2023年找工作的心酸历程
全球热议:ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
世界即时看!SSM框架笔记 庆祝学习SSM框架结束!!!
世界速读:【财经分析】债市短期表现向好 机构操作犹存分歧
当前速看:《生化危机4:重制版》阿什莉服装Mod公布 看了把持不住
天天亮点!CPU占用暴降 SSD提速百倍:《暗黑4》将支持微软DX游戏神技
具体如何编写信号与槽
今日热讯:关于大国竞争,“修昔底德陷阱”提出者谈到了“澶渊之盟”
合资轿车雪上加霜!上汽名爵最帅轿跑MG7上市:11.98万起
新动态:ROG游戏手机7跑分首曝:二代骁龙8 134.6万冠绝全球
规模或超90%!流媒体巨头Hulu国内被曝大裁员
JOLED破产 日本OLED面板技术押错宝:弯道超车失败
当前动态:骁龙8cx Gen 4处理器跑分曝光:12核性能大跌眼镜 仅苹果M2 Max 1/3
【世界速看料】76.算术运算符
世界动态:PfSense pfBlockerNG 未授权RCE漏洞(CVE-2022-31814)
热点!Unity中基于EPPLUS的Excel转换以及Json数据读取
全球速讯:c# 对序列化类XMLSerializer 二次封装泛型化方便了一些使用的步骤
新华社权威快报|首次纳入肝素类药品 第八批药品集采平均降价56%
焦点!一排小草怎么画简单好看_一排小草怎么画简笔画
当前快讯:Win12正全力开发!微软重构操作系统底层:模块化设计
【新视野】宣称能跑100公里!男子网购电动车续航打折:法院判退一赔三
全球快资讯:“雪糕刺客”的仁慈!钟薛高用文心一言打造雪糕 仅售3.5元
即时看!口腔溃疡总不好 可能是大病预警!“偏方”都没用!
今日讯!比5G强10倍!工信部:中国已成立6G工作组推动关键技术研究
pthread库实现简单并行程序:Hello
全球焦点!日本央行官员暗示调整YCC政策 日债收益率周三全线回落
全球快资讯:净利润同比增长超62% 中国石油2022年业绩创历史最好水平
全球视点!韩瑟冻干粉怎么样_韩瑟化妆品怎么样
果然来了!电商偷跑索尼PS5 Slim游戏机:新外观 更轻薄
全球热头条丨SSD性能狂飙 追赶DDR5内存 PCIe 6.0硬盘预计2026年问世
听到吧唧嘴就抓狂:一男子已4年不理家人
头条:德国掀桌 欧盟让步 “2035禁燃令”为何不再禁燃油车?
男子测智商竟被推荐花98元包月:付了钱也没看到结果
【独家焦点】郑氏点银:黄金有望震荡冲1980,原油背离逼空反弹待回落
【天天快播报】记录--开局一张图,构建神奇的 CSS 效果
java泛型和通配符
环球微资讯!玩家期待已久!任天堂限定版Switch来了
全球今日报丨不拍蒜也断?张小泉斩骨刀斩骨时断裂 客服:与使用力度、角度有关
车被撞废人完好无损!比亚迪汉DM-i车主转头定了一台海豹
环球快资讯丨为何Redmi敢首发高通第二代骁龙7+?员工解释原因
男子驾车途中昏迷撞走公司大门 罪魁祸首竟是一只马蜂
全球看热讯:惠州治皮肤过敏较好的医院
全球微头条丨用 Go 剑指 Offer 07. 重建二叉树
快资讯:IDEA使用技巧和注册教程
全网最详细中英文ChatGPT-GPT-4示例文档-最强JS助手聊天机器人应用从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/
全球快看点丨下载安装MyAQL数据库8.0.30