zoukankan      html  css  js  c++  java
  • 在MFC下面实际演示CCriticalSection 的使用


    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;
    }

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

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

     

    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);
    }

    第五步:运行测试。

     点击视图区域

    出现下面的东东

  • 相关阅读:
    day4 流程控制while 判断if
    作业2
    C语言I博客作业02
    ActionScript3与PHP的通信
    WordPress代码和分析从主题开始
    事件、委托、异步
    201920201学期 20192405《网络空间安全专业导论》第二周学习总结
    201920201学期 20192405《网络空间安全专业导论》第二周学习总结
    201920201学期 20192405《网络空间安全专业导论》第四周学习总结
    201920201学期 20192405《网络空间安全专业导论》第一周学习总结
  • 原文地址:https://www.cnblogs.com/wenluderen/p/4302936.html
Copyright © 2011-2022 走看看