使用MFC的CCriticalSection类来实现操作临界区
使用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类来实现操作临界区相关推荐
- 【MFC】CCriticalSection类在Release编译下调用Lock函数会报0xC0000008错误
[MFC]CCriticalSection类在Release编译下调用Lock函数会报错0xC0000008 问题描述 方法一 CRITICAL_SECTION代替CCriticalSection 方 ...
- 【无标题】c++ MFC图像处理CImage类常用操作代码
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9598974.html 我看了一下发现关于c++下的CImage图像处理类 的图像处理相关的介绍 ...
- MFC线程同步—— CCriticalSection类使用
多个线程访问临界区时,可以使用临界区对象.临界区对象是一个独占性共享资源,任一时刻只有一个线程可以拥有临界区.拥有临界区的线程可以访问被保护起来的资源或代码段,其他希望进入临界区的线程将被挂起等待,直 ...
- VC++ 利用MFC的CWindowDC类实现画线功能 在桌面窗口中画线 绘制彩色线条 CPen nPenStyle nWidth crColor
目录 利用MFC的CWindowDC类实现画线功能 在桌面窗口中画线 绘制彩色线条 CPen nPenStyle nWidth crColor 接上:VC++ 绘制线条 OnLButtonDown函数 ...
- VC++ 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能
目录 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能 接上:VC+ ...
- MFC的COleDateTime类使用
MFC的COleDateTime类使用 经常在软件开发中用到计算执行某个功能的耗时,有必要深入研究下COleDateTime类,以备不时之需.闲话少叙,书归正传,下面我们就一起来看看,该如何使用这个类 ...
- 使用MFC的CDC类绘制三维坐标系及球面函数
系列链接 使用MFC的CDC类绘制二维坐标系及正余弦函数 / 源码 使用MFC的CDC类绘制三维坐标系及球面函数 / 源码 概述 本文使用MFC的CDC类绘制三维坐标系及球面函数.首先计算推导出三维坐 ...
- File IO(NIO.2):路径类 和 路径操作
路径类 Java SE 7版本中引入的Path类是java.nio.file包的主要入口点之一.如果您的应用程序使用文件I / O,您将需要了解此类的强大功能. 版本注意:如果您有使用java.io. ...
- 【Android 插件化】Hook 插件化框架 ( 反射工具类 | 反射常用操作整理 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
最新文章
- VC中BSTR和CString的使用
- 回顾我学过的编程语言
- Codeforces Round #555 (Div. 3) c2 d e f
- webpack(2)--开发环境基本配置
- 算法导论8.3-4习题解答(基数排序)
- IdentityServer4系列 | 支持数据持久化
- Class的getResource与ClassLoader的getResource路径/问题
- SQLSERVER如何获取一个数据库中的所有表的名称、一个表中所有字段的名称
- 帮帮忙—ssm框架中,简单自定义标签SimpleTagSupport如何注入spirng中的bean
- 【华为云技术分享】深度详解GaussDB bufferpool缓存策略
- 2.6 使用for循环遍历文件 2.7 使用while循环遍历文件 2.8 统计系统剩余的内存 2.9 数据类型转换计算(计算mac地址) 3.0 数据类型转换(列表与字典相互转换)...
- visio箭头尾部遮盖方框边线
- vmware死机,mvx.exe进程关不掉情况
- Windows命令提示符窗口操作命令
- Java常用API——学习笔记(7)
- 海马玩模拟器启动失败,start machine failed! error code = 3和error code=21
- 民宿运营经验分享:玩转自我营销,带动流量持续增长
- 凸包算法-------Graham扫描法
- ADXL345实现功能全面的计步器
- 2020年12月计算机一级考试,5省市已公布2020年12月计算机等级考试时间,切勿错过!...