在MFC下面实际演示CCriticalSection 的使用

在MFC下面实际演示CCriticalSection 的使用Q:CCriticalSection是什么?A:CCriticalSection是一种线程同步策略或者说技术或者方法总之呢就是这么个意思。。。。参考资料:http://blog.csdn.ne

大家好,又见面了,我是你们的朋友全栈君。

Q:CCriticalSection是什么?  

A:CCriticalSection是一种线程同步策略 或者说技术 或者方法  总之呢就是这么个意思。。。。

参考资料:

http://blog.csdn.net/akof1314/article/details/5773076

http://www.cnblogs.com/hlxs/archive/2013/03/31/2991752.html

http://baike.baidu.com/view/2471016.htm

第一步:打开VS2010 创建一个单文档MFC程序。并运行 确定创建过程OK

第二步:在视图类头文件里面添加头文件#include “afxmt.h”

并在视图类的实现文件里面实例化一个CCriticalSection对象。

特别说明这个对象不属于视图类,此处是将其定义为一个全局变量。

	CCriticalSection Gsz_CriticalSection;

  

第三步:在视图里的实现文件里面 定义这两个函数。这两个函数带回会被指定为线程函数。这两个函数不是视图类的成员函数。

UINT  MessageThread1(LPVOID pParam) 
{ 
	Gsz_CriticalSection.Lock(); 
	LPTSTR pMessage = _T("Thread1 is started"); 
      //AfxGetMainWnd函数获取MFC程序中的主框架类指针是一个常用作法 CWnd *pMainWnd = AfxGetMainWnd(); ::MessageBox(pMainWnd->m_hWnd, pMessage, _T("Thread message"), MB_OK); Gsz_CriticalSection.Unlock(); return 0; } UINT MessageThread2(LPVOID pParam) { Gsz_CriticalSection.Lock(); LPTSTR pMessage = _T("Thread2 is started");
//AfxGetMainWnd函数获取MFC程序中的主框架类指针是一个常用作法
CWnd *pMainWnd = AfxGetMainWnd();
::MessageBox(pMainWnd->m_hWnd, pMessage, _T("Thread message"), MB_OK);
Gsz_CriticalSection.Unlock();
return 0;
}

第四步:给视图类的添加 鼠标左键消息响应函数 函数编写如下:

注意这个需要点击如下所示,找个 左键响应函数。

 <span role="heading" aria-level="2">在MFC下面实际演示CCriticalSection 的使用

<span role="heading" aria-level="2">在MFC下面实际演示CCriticalSection 的使用

void CTestGszView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
AfxBeginThread(MessageThread1, _T(“Thread is started”)); //启动线程1
AfxBeginThread(MessageThread2, _T(“Thread is started”)); //启动线程2

CView::OnLButtonDown(nFlags, point);
}

第五步:运行测试。

 点击视图区域

出现下面的东东

<span role="heading" aria-level="2">在MFC下面实际演示CCriticalSection 的使用

<span role="heading" aria-level="2">在MFC下面实际演示CCriticalSection 的使用

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154895.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spss线性回归模型汇总_多元线性回归分析模型

    spss线性回归模型汇总_多元线性回归分析模型多元线性回归,主要是研究一个因变量与多个自变量之间的相关关系,跟一元回归原理差不多,区别在于影响因素(自变量)更多些而已,例如:一元线性回归方程为:毫无疑问,多元线性回归方程应该为:上图中的x1

    2022年8月3日
    6
  • landsat8与landsat7波段对比

    landsat8与landsat7波段对比版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。…

    2022年7月23日
    16
  • Unity Cinemachine插件全功能详解

    Unity Cinemachine插件全功能详解实现电影级别的分镜,推拉式镜头等,需要2017以上的版本才能使用,配合TimeLine一起使用,和Animator一起.虚拟摄像机不支持AlignwithView【有BUG】还是手动拖比较好1:实现简单的相机跟随效果使用TimeLine实现,由于这次不同于“Unity动画系统案例1”那样需要对人物进行控制。这个项目只是单纯的做CG效果。所以不需要指定动画状态机【但必须挂在Animator…

    2022年6月8日
    56
  • 07-SNAP处理Sentinel-1 IW GRD数据

    07-SNAP处理Sentinel-1 IW GRD数据热噪声去除为何会有热噪声 热噪声是 SAR 卫星系统自带的噪声 SAR 是主动成像的 需要发射机发出电磁波信号 能量 你可以想像一下 SAR 天线从发出电磁波到接收电磁波所经历的距离 sentinel 1 距地面高度 700km 由于存在波的球面扩散效应 能量呈距离平方反比衰减 所以 你可以想象一下发射机需要多大的功率 发出多强的能量 考虑到这点 你会想到 SAR 卫星装置内部的热量 热损耗 不可以忽视的

    2025年7月6日
    0
  • 极影动漫_风车动漫无删减免费下载

    极影动漫_风车动漫无删减免费下载极影动漫链接:http://vod.ktxp.com…

    2022年8月23日
    2
  • linux通配符的用法_linux中rmdir命令

    linux通配符的用法_linux中rmdir命令注意:linux通配符和三剑客(grep,awk,sed)正则表达式是不一样的,因此,代表的意义也是有较大区别的。通配符一般用户命令行bash环境,而linux正则表达式用于grep,sed,awk场景。*:通配符,代表所有(0到多个)字符?:通配符,代表任意1个字符;:连续不同命令的分隔符#:配置文件注释|:管道~:当前用户的家目录-:上一次所在的路径$:变量前需要加的符号/:路径分隔符号,也是…

    2022年9月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号