简单记录一下C++中的Lock的用法

下面是使用临界区进行线程同步
首先定义一个临界区对象

 CCriticalSection m_CritSect;    //临界对象,同步线程使用

在需要使用到可能起冲突的资源之前,使用Lock把临界区锁起来,用完之后再解锁;
在我这种情况下,因为采集和处理线程在一直进行,对m_pShowBuf这个空间也会一直写入和取出,为了防止出现冲突,所以加一个锁进行管理。

    pMain->m_CritSect.Lock();RGBTRIPLE* pSingle = (RGBTRIPLE*)(pMain->left.m_pShowBuf);pMain->m_CritSect.Unlock();pMain->left.m_pIdentify = pSingle;///pMain->IdentifyAll(pMain->left);pMain->m_CritSect.Lock();pSingle = (RGBTRIPLE*)(pMain->right.m_pShowBuf);pMain->m_CritSect.Unlock();pMain->right.m_pIdentify = pSingle;///pMain->IdentifyAll(pMain->right);for (int i = 0; i < 12; i++)pMain->InitalFound[i] = pMain->RobotFound[i];pMain->DrawRobot(pDC);pMain->DrawOpp(pDC);pMain->DrawBall(pDC);

C++中的Lock简单用法相关推荐

  1. python count函数代码_python中count函数简单用法

    python中count函数简单用法 python中count函数的用法 Python count()方法 描述 Python count() 方法用于统计字符串里某个字符出现的次数.可选参数为在字符 ...

  2. android中checkbox使用方法,Android开发中CheckBox的简单用法示例

    本文实例讲述了Android开发中CheckBox的简单用法.分享给大家供大家参考,具体如下: CheckBox是一种在界面开发中比较常见的控件,Android中UI开发也有CheckBox,简单的说 ...

  3. C#窗体设计中ToolTip的简单用法

    本文介绍C#窗体设计中ToolTip的简单用法. 操作流程 1.1. ToolTip信息提示框作用 C#中提供了信息提示框,这有很多用处,可以提示控件或者用户自定义的属性信息,而且可以自动弹出或者用户 ...

  4. Shellz中awk的简单用法

    其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...

  5. **matlab中fprintf函数简单用法**

    1.fprintf函数:将数据按指定格式写入到文本文件中. 2.用法说明: fprintf(fid, format, variables): 按指定的格式将变量的值输出到屏幕或指定文件: fid为文件 ...

  6. python 中 feedparser的简单用法

    最近在机器学习实战中用到feedparser ,然后简单总结了一下: feedparser是python中最常用的RSS程序库,使用它我们可轻松地实现从任何 RSS 或 Atom 订阅源得到标题.链接 ...

  7. C# Winfom 中ListBox的简单用法

    Winform控件ListBox的用法 1.如何添加listBox的值 this.listBox1.Items.Add("张晓东"); 2.如何判断listBox集合是否添加过 / ...

  8. python中parse.add_argument()简单用法

    argparse模块简单使用流程以及与命令行的交互 1.导入模块 2.创建解析器 3.添加参数 4.解析参数 5使用参数 完整代码 与命令行的交互 argparse 模块是 Python 内置的一个用 ...

  9. python list中的sort()简单用法与lambda的使用

    序列类型分三种:元组,字符串,列表 list 列表属于序列类型,于元组不同的是 元组类型一旦创建不可修改 使用()或者tuple()创建,而列表类型创建后可以被随意修改 使用[]或list()创建 s ...

最新文章

  1. 蓝牙协议 HFP,HSP,A2DP等等
  2. No module named import_export.admin
  3. docker-compose 1.29.2 下载地址
  4. Oracle Schema Objects——Tables——TableType
  5. 【读书笔记】.Net并行编程高级教程--Parallel
  6. 亚马逊云科技首次发布“三驾马车”中国业务战略
  7. kali修改root密码
  8. Eclipse调试进入JDK源码
  9. qtcreator中常用快捷键总结
  10. CentOS hadoop 分布式集群的搭建
  11. 回顾18年我的Java自动化测试框架
  12. 欧姆龙PLC程序 欧姆龙NX系列PLC程序,ST语言和梯形图配合使用,数据处理使用ST语言,逻辑用梯形图
  13. Intouch System Platform IDE
  14. 如何认识会计科目,看懂财务报表
  15. 74hc595点亮点阵式led交通灯灯 c语言程序,74hc595驱动点阵程序
  16. LeetCode二叉树中序遍历
  17. Android之自定义动画框架实现ScrollView滚动动画总结(雷惊风)
  18. 微信小程序 评论功能实现
  19. TaobaoSchedule调度管理控制台
  20. 【ValueError: could not convert string to float: ‘young‘】python利用pandas对string类型的数据序列化

热门文章

  1. 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了
  2. 《Splunk智能运维实战》——3.11 制作折线图显示项目浏览量和购买量随时间的变化...
  3. 遍历jenkins build后的文件夹,找出最新“build NO.”复制到制定目录进行操作
  4. MATLAB遍历子文件夹及其下文件
  5. 基于SpringBoot的个人博客系统
  6. java中abstract关键字
  7. 2018-2019-2 网络对抗技术 20165301 Exp3 免杀原理与实践
  8. Nginx之HTTP过滤模块
  9. 大型网站系统架构演化之路(转)
  10. MVC 多级目录菜单