zoukankan      html  css  js  c++  java
  • 线程的创建

    来自:http://blog.csdn.net/beyond_q/article/details/2114599

    现在,我们来谈谈用MFC如何创建多线程了吧!

    MFC中有两类线程 :
     工作者线程 和 用户界面线程

     他们主要的区别是:
      工作者线程没有消息循环,通常用来执行后台计算和维护任务
      户界面线程有自己的消息队列 和 消息循环,是用于响应用户及系统所产生的事件和消息,即有交互功能

    当然了,对于Win32的API编程而言,他们是没有区别的。 

    今天,我们就创建一个简单的MFC式工作者线程:

    void CMultiThreadDlg::OnBtnUsageThree()
    {
     // TODO: Add your control notification handler code here
    //简单的工作者线程
     CWinThread *pThread = NULL;
     CString strArg  = _T("");

     pThread = AfxBeginThread(
      AfxThreadProc,         //线程启动函数
      &strArg,          //线程启动函数
      THREAD_PRIORITY_NORMAL,       //线程优先级
      0,            //Windows系统一般线程栈大小为1 MB,创建线程的数目与物理内存和栈空间大小有关
      0,            //线程创建标志,如:CREATE_SUSPENDED
      NULL);           //系统安全描述,NULL

     if ( pThread )
     {
      //pThread->m_bAutoDelete = TRUE;     //当线程结束是自动清除线程对象,默认是TRUE
      WaitForSingleObject( pThread->m_hThread,INFINITE ); //等待线程结束
      AfxMessageBox(strArg);
     }
    }

    线程函数:

    UINT __cdecl AfxThreadProc( LPVOID pParam )
    {
     CString * pStr = (CString*)pParam;
     *pStr = _T("Hello World!");
     //AfxEndThread(0/*线程退出码*/,TRUE/*是否删除现成所占用的内存*/ ); //提前退出线程函数
     return 0;
    }

  • 相关阅读:
    凸包Graham Scan算法实现
    人与人之间的差距是从大学开始的
    google笔试题两个n维数组logn求中位数问题 zz
    matlab中使用结构体
    人脸识别理论与应用研究 zz
    如果让我再读一次研究生 zz
    Open Yale CourseFinancial MarketNote1 zz
    哈尔小波变换示例
    全屏模式 硬缩放
    APE结合键盘控制角色运动 转
  • 原文地址:https://www.cnblogs.com/yuqilihualuo/p/4000571.html
Copyright © 2011-2022 走看看