多线程专题之MFC创建线程(1)

现在,我们来谈谈用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;
}

今天,就到这了.明天继续啊.提示以下,明天讲MFC有消息循环的有界面和无界面线程.记得关注哦!呵呵.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值