使用MFC的CCriticalSection类来实现操作临界区

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <afxmt.h>
//声明线程函数
DWORD WINAPI myfun1(LPVOID lpParameter);
DWORD WINAPI myfun2(LPVOID lpParameter);
//定义临界对象
//CRITICAL_SECTION section;
CCriticalSection m_Sec;
//定义全局变量并初始化
int a = 0;
int _tmain(int argc, _TCHAR* argv[])
{//创建线程//InitializeCriticalSection(§ion); //初始化临界区对象//::Sleep(1000);    //程序睡眠10秒HANDLE h1,h2;h1 = ::CreateThread(NULL, 0, myfun1, NULL, 0,NULL);printf("线程1准备运行!\r\n");h2 = ::CreateThread(NULL, 0, myfun2, NULL, 0,NULL);printf("线程2准备运行!\r\n");::CloseHandle(h1);    //关闭线程1::CloseHandle(h2);   //关闭线程2::Sleep(100000); //程序睡眠10秒return 0;
}DWORD WINAPI myfun1(LPVOID lpParameter)
{m_Sec.Lock();a+=1;printf("线程1正在计数%d!\r\n",a);m_Sec.Unlock();return 0;
}DWORD WINAPI myfun2(LPVOID lpParameter)
{m_Sec.Lock();a+=1;printf("线程2正在计数%d!\r\n",a);m_Sec.Unlock();return 0;
}

注意:

afxmt.h是一个MFC多线程同步的一个扩展头文件, 该头文件中声明了用于MFC编程中多线程同步时所需要的类, 比如:
class CSyncObject;
class CSemaphore;
class CMutex;
class CEvent;
class CCriticalSection;

包含该头文件, 就可以直接在自己的程序中使用这几个类!
afxmt名字解释: afx代表全局的意思, mt是Multi Thread的简写

使用MFC的CCriticalSection类来实现操作临界区相关推荐

  1. 【MFC】CCriticalSection类在Release编译下调用Lock函数会报0xC0000008错误

    [MFC]CCriticalSection类在Release编译下调用Lock函数会报错0xC0000008 问题描述 方法一 CRITICAL_SECTION代替CCriticalSection 方 ...

  2. 【无标题】c++ MFC图像处理CImage类常用操作代码

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9598974.html 我看了一下发现关于c++下的CImage图像处理类 的图像处理相关的介绍 ...

  3. MFC线程同步—— CCriticalSection类使用

    多个线程访问临界区时,可以使用临界区对象.临界区对象是一个独占性共享资源,任一时刻只有一个线程可以拥有临界区.拥有临界区的线程可以访问被保护起来的资源或代码段,其他希望进入临界区的线程将被挂起等待,直 ...

  4. VC++ 利用MFC的CWindowDC类实现画线功能 在桌面窗口中画线 绘制彩色线条 CPen nPenStyle nWidth crColor

    目录 利用MFC的CWindowDC类实现画线功能 在桌面窗口中画线 绘制彩色线条 CPen nPenStyle nWidth crColor 接上:VC++ 绘制线条 OnLButtonDown函数 ...

  5. VC++ 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能

    目录 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能 接上:VC+ ...

  6. MFC的COleDateTime类使用

    MFC的COleDateTime类使用 经常在软件开发中用到计算执行某个功能的耗时,有必要深入研究下COleDateTime类,以备不时之需.闲话少叙,书归正传,下面我们就一起来看看,该如何使用这个类 ...

  7. 使用MFC的CDC类绘制三维坐标系及球面函数

    系列链接 使用MFC的CDC类绘制二维坐标系及正余弦函数 / 源码 使用MFC的CDC类绘制三维坐标系及球面函数 / 源码 概述 本文使用MFC的CDC类绘制三维坐标系及球面函数.首先计算推导出三维坐 ...

  8. File IO(NIO.2):路径类 和 路径操作

    路径类 Java SE 7版本中引入的Path类是java.nio.file包的主要入口点之一.如果您的应用程序使用文件I / O,您将需要了解此类的强大功能. 版本注意:如果您有使用java.io. ...

  9. 【Android 插件化】Hook 插件化框架 ( 反射工具类 | 反射常用操作整理 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

最新文章

  1. VC中BSTR和CString的使用
  2. 回顾我学过的编程语言
  3. Codeforces Round #555 (Div. 3) c2 d e f
  4. webpack(2)--开发环境基本配置
  5. 算法导论8.3-4习题解答(基数排序)
  6. IdentityServer4系列 | 支持数据持久化
  7. Class的getResource与ClassLoader的getResource路径/问题
  8. SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称
  9. 帮帮忙—ssm框架中,简单自定义标签SimpleTagSupport如何注入spirng中的bean
  10. 【华为云技术分享】深度详解GaussDB bufferpool缓存策略
  11. 2.6 使用for循环遍历文件 2.7 使用while循环遍历文件 2.8 统计系统剩余的内存 2.9 数据类型转换计算(计算mac地址) 3.0 数据类型转换(列表与字典相互转换)...
  12. visio箭头尾部遮盖方框边线
  13. vmware死机,mvx.exe进程关不掉情况
  14. Windows命令提示符窗口操作命令
  15. Java常用API——学习笔记(7)
  16. 海马玩模拟器启动失败,start machine failed! error code = 3和error code=21
  17. 民宿运营经验分享:玩转自我营销,带动流量持续增长
  18. 凸包算法-------Graham扫描法
  19. ADXL345实现功能全面的计步器
  20. 2020年12月计算机一级考试,5省市已公布2020年12月计算机等级考试时间,切勿错过!...

热门文章

  1. 《重学Java系列》之 注解基础
  2. android弹幕视频播放器,Android直播播放器 弹幕使用总结
  3. 进程和线程的详解和区别
  4. @tf.function
  5. PPT作品分享——汽车销量及新能源汽车发展研究
  6. 首次公开,阿里技术团队编写的“大厂面试参考指南”v1.0版本
  7. 人生在世短短几十载,怎甘碌碌终生而无为?
  8. 将ChatGPT玩溜,玩赚自媒体
  9. [libgdx游戏开发教程]使用Libgdx进行游戏开发(7)-屏幕布局的最佳实践
  10. 怎样编程?怎样做人?