多线程内使用GetDC的注意问题
这两天终于解决了一个困扰已久的问题,之前程序一直有资源泄露的问题,本来在GetDC后正常应该ReleaseDC的,但是在线程内的函数DrawDib(BYTE* pData)里面GetDC后ReleaseDC后就根本不显示东西
正确的写法是在调用绘制函数之前GetDC,再将DC传到函数内,之后再ReleaseDC
CDC* pDC = pThis->GetDC();
pThis->DrawDib(pThis->m_pImageData, pDC);
pThis->ReleaseDC(pDC);
原来的写法:
UINT CHDCamViewWnd::__DrawDib(LPVOID lpVoid)
{
CHDCamViewWnd* pThis = (CHDCamViewWnd*)lpVoid;
HANDLE hds[2] ={g_eventDraw , g_eventExit};
while(1)
{
Sleep(1);
DWORD dwRet = WaitForMultipleObjects(2, hds, FALSE, INFINITE);
if(dwRet == WAIT_OBJECT_0)
{
pThis->m_pImageData = theAppVMService.GetImageData();
if(!pThis->m_bStopDib)
{
pThis->DrawDib(pThis->m_pImageData);
}
}
else if(dwRet == WAIT_OBJECT_0 + 1)
{
break;
}
}
return 0;
}
多线程内使用GetDC的注意问题相关推荐
- 异步多线程C/S框架gko_pool
曾经在上家公司做了一个内网P2P的传输工具名曰gingko 当时太菜了,网络部分写的很差,各种阻塞式网络通信 后来离职把memcached的代码研究了一下,感觉里面的网络模型非常先进 我就把memca ...
- spring 多线程事务的问题
线程不属于spring托管,故线程不能够默认使用spring的事务,也不能获取spring注入的bean 在被spring声明式事务管理的方法内开启多线程,多线程内的方法不被事务控制. 如下代码,线程 ...
- [Java基础] Java多线程之生活简述
前言 1024程序员节. 今天写点干货. 在Java的多线程内, 有非常多的组成和变量. 初学时, 经常拿捏不住. 下面我们带入生活的场景, 简单的描述下Java中的各种使用场景. 多线程的基本组成 ...
- 聊聊这道【快手】面试题
来自:后端技术指南针 0x00 前言 前几天大白参加了快手的视频面试,第一次使用牛客网的在线面试系统,10点开始12点才结束,一面竟然持续了两个小时,期间最开始用手机面试,20分钟简单聊完项目之后开始 ...
- Java 5~11各个版本新特性史上最全总结
Java 5 Java5开发代号为Tiger(老虎),于2004-09-30发行 特性列表 泛型 枚举 自动装箱拆箱 可变参数 注解 foreach循环(增强for.for/in) 静态导入 格式化( ...
- boost--线程同步
1.互斥锁(互斥量) mutex是独占式的互斥锁.timed_mutex增加了超时功能. 成员函数:lock()用于锁定,try_lock()为非阻塞版本的锁定,unlock()用于解锁.timed_ ...
- C# 委托(Delegate) 事件(Event)应用详解
委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每 ...
- Linux性能评测工具之一:gprof篇
这些天自己试着对项目作一些压力测试和性能优化,也对用过的测试工具作一些总结,并把相关的资料作一个汇总,以便以后信手拈来! 1 简介 改进应用程序的性能是一项非常耗时耗力的工作,但是究竟程序中是哪些函数 ...
- @Transactional 使用
1 .添加位置 1)接口实现类或接口实现方法上,而不是接口类中. 2)访问权限:public 的方法才起作用.@Transactional 注解应该只被应用到 public 方法上,这是由 Sprin ...
最新文章
- 关于鸿蒙 2.0,那些开发者不知道的一切
- VMware View 5.0从菜鸟到高手系列 10 –远程图形工作站配置篇
- C语言数组的一些运算*a,a+1,a+1,a+0
- Python中多个数组行合并及列合并的方法总结
- 使用 remix-ide(Browser-solidity)在 Geth 上部署智能合约
- 我从创立3家科技公司的经历中学到了什么
- php序列化函数输入0存不了,php序列化函数的区别
- 蓝桥杯 ALGO-97 算法训练 排序
- 06-JavaScript的流控制语句
- 《现代前端技术解析》第七章读书笔记
- 点阵字库制作和使用(一)
- 发光二极管pcb封装图画法_干货 | 从焊接角度谈画PCB图时应注意的问题
- php jquery alert 美化,jquery插件hiAlert实现网页对话框美化_jquery
- 关于MSN群 创建MSN群 使用MSN群
- 微信小程序开源框架wxSortPickerView:微信小程序首字母排序选择表
- SQL2008升级SQL2008R2完全教程
- 自动化学科前沿讲座作业 基于深度学习的工厂人员监测系统设计
- 数据结构应用题大题笔记
- 有趣的计算机课的作文,有趣的电脑课作文400字
- 13/18V系列中频切换开关原理及应用方式