简言之:
AfxBeginThread是MFC的全局函数,是对CreateThread的封装。
    CreateThread是Win32 API函数,前者最终要调到后者。

具体说来,CreateThread这个 函数是windows提供给用户的 API函数,是SDK的标准形式,在使用的过
程中要考虑到进程的同步与互斥的关系,进程间的同步互斥等一系列会导致操作系统死锁的因素,用起来
比较繁琐一些,初学的人在用到的时候可能会产生不可预料的错误,建议多使用AfxBeginThread,是编译
器对原来的CreateThread函数的封装,用与MFC编程(当然,只要修改了项目属性,console和win32项目
都能调用)而_beginthread是C的运行库函数。
2>
在使用AfxBeginThread时,
线程函数的定义为:UINT   _yourThreadFun(LPVOID   pParam)    参数必须如此
在使用CreateThread时,
线程的函数定义为: DWORD WINAPI _yourThreadFun(LPVOID pParameter)
两者实质是一样的,
不过AfxBeginThread返回CWinThread指针,就是说它会new一个CWinThread对象,而这个对象在线程运行结束时是会自动删除的,
CreatThread,它返回的是一个句柄,如果你不使用CloseHandle的话就可以通过它安全的了解线程状态,
最后不要的时候CloseHandle,Windows才会释放资源

VC++ AfxBeginThread 与 CreateThread 的区别相关推荐

  1. _beginthreadex和CreateThread的区别

    程序员对于Windows程序中应该用_beginthread还是CreateThread来创建线程,一直有所争论.本文将从对CRT源代码出发探讨这个问题. I. 起因 使用_beginthread还是 ...

  2. vc中ASSERT()和VERIFY()区别

    vc中ASSERT()和VERIFY()区别 (2010-03-27 22:24:53) 转载▼ 标签: 杂谈   1  ASSERT与VERIFY宏在Debug模式下作用基本一致,二者都对表达式的值 ...

  3. VC中_T()与L区别(转)

    VC中_T("")与L区别 区别解释 一说这个话题,肯定涉及MS的字符集,先看MS对_T(其中_TEXT(")与_T("")一样)的定义: [cpp] ...

  4. VC下Debug 和Release 区别【转】

    在工具栏上点右键,选择编译,将编译win32debug改为win32 Release即可.如果需要调试的话,还需要再改回来方可. 最近写代码过程中,发现 Debug 下运行正常,Release 下就会 ...

  5. VC++ WCHAR,CHAR,TCHAR的区别

    C++的字符分成两种类型wchar_t和char.   其中   WCHAR==wchar_t,CHAR==char.   TCHAR是一种条件编译的类型,根据条件可以代表wchar_t或char. ...

  6. vc 消息与事件的区别

    事件是一个动作--用户触发的动作.    消息是一个信息--传递给系统的信息.            事件与消息的概念在计算机中较易混淆,但本质不同:            事件由用户(操作电脑的人) ...

  7. AfxBeginThread的介绍/基本用法和Window多线程使用详解

    AfxBeginThread     用户界面线程和工作者线程都是由AfxBeginThread创建的.现在,考察该函数:MFC提供了两个重载版的AfxBeginThread,一个用于用户界面线程,另 ...

  8. 转:MFC中创建多线程

    MFC中创建多线程 MFC的多线程函数必须声明为静态的或者是全局函数(不同的在于全局函数不能访问类的私有静态成员,而静态类函数可以):但这样的线程函数只能访问静态的成员变量,要实现访问类的其他成员,可 ...

  9. CreateThread、_beginthreadex和AfxBeginThread 的区别

    CreateThread._beginthreadex和AfxBeginThread 创建线程好几个函数可以使用,可是它们有什么区别,适用于什么情况呢? 参考了一些资料,写得都挺好的,这里做一些摘抄和 ...

最新文章

  1. C++——创建类的时候用new与不用new 的区别(转)
  2. mysql select 返回列,是否可以对在mysql SELECT语句中返回列的顺序进行排序?
  3. 山东省中职计算机应用专业人才培养方案,计算机应用与维修专业人才培养方案(中职)...
  4. linux使用同一密钥对实现互相免密登录
  5. permutations python_为什么Python的itertools.permutations包含重复项? (当原始列表重复时)...
  6. 【华为云技术分享】为什么说物联网平台是城市数字化的必备底座
  7. 零基础学习前端:学习路线、学习计划、实战项目和面试题简历分享。
  8. 在CentOS7上实现NFS共享
  9. 从氨基酸到大分子(蛋白质、核酸)
  10. Kotlin的一些特殊运算符
  11. 用友服务器ip地址在哪里修改密码,用友服务器ip地址在哪里修改密码
  12. Hexo+Github搭建个人博客(一)——开始搭建
  13. windows窗口添加菜单[SDK]
  14. xp计算机u盘重装系统,如何用u盘装xp系统_纯净版xp系统_xp系统安装教程 - u大师...
  15. VMware连接不上网络解决办法
  16. 光影mod_我的世界:mc十大“最受欢迎”mod,知道半数以上,实为老玩家
  17. pdf怎么分割页面?
  18. AI绘画怎么生成?这些软件帮助你实现
  19. NB-IoT模组选型及项目初始必看!
  20. 人机博弈 围棋程序GNU GO 所有版本源码及使用方法

热门文章

  1. 今天,小程序正式支持 SVG
  2. 给jdk写注释系列之jdk1.6容器(1):ArrayList源码解析
  3. iOS组件化(二):创建远程私有库
  4. 网络工程师必懂的专业术语
  5. PHP设计模式系列 - 解释器模式
  6. C++模板的特例化编译为多重定义问题
  7. 隐藏Apache Nginx PHP版本号
  8. 【技术贴】五分钟解决打开软件提示windows正在设置Microsoft Office Profes
  9. ntfs分区对linux的局限,如何使Linux支持NTFS分区
  10. java jpanel方法,Java JPanel.putClientProperty方法代码示例