_beginthreadex、CreateThread、AfxBeginThread的选择 收藏

1.  Create/EndThread是Win32方法开始/结束一个线程

_beginthreadx/_endthreadex是C RunTime方式开始/结束一个线程

AfxBeginThread在MFC中开始/结束一个线程

2.直接在CreateThread API创建的线程中使用sprintf,malloc,strcat等涉及CRT存储堆操作的CRT库函数是很危险的,容易造成线程的意外中止。 在使用_beginthread和_beginthreadex创建的线程中可以安全的使用CRT函数。但是必须在线程结束的时候相应的调用_endthread或_endthreadex

3._beginthread成对调用的_endthread函数内部隐式的调用CloseHandle关闭了线程句柄,而与_beginthreadex成对使用的_endthreadex则没有关闭线程的句柄,需要显示的调用CloseHandle关闭线程句柄,不要使用_beginthread,使用._beginthreadex代替之。

4.尽量不要在一个MFC程序中使用_beginthreadex()或CreateThread()。

5.没有使用到MFC的线程尽量用_beginthreadex启动。

6.如果在一个与LIBCMT.LIB链接的程序中调用C Runtime函数,则必须要用_beginthreadex启动线程

7._beginthreadex启动的线程可以安全的调用任何C Runtime 函数

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25897606/viewspace-704289/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25897606/viewspace-704289/

_beginthreadex、CreateThread、AfxBeginThread的选择相关推荐

  1. MFC thread _beginthreadex CreateThread AfxBeginThread 对比

    CreateThread CreateThread函数是Windows的一个API函数 操作系统级别的创建线程的操作,且仅限于工作者线程.不调用MFC和RTL的函数时,可以用CreateThread, ...

  2. CreateThread、_beginthreadex、AfxBeginThread

    1.CreateThread._beginthreadex.AfxBeginThread的区别和正确使用: CreateThread是一个Windows的API函数,_beginthreadex是一个 ...

  3. CreateThread、_beginthreadex和AfxBeginThread 的区别

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

  4. 《编码checklist规范》学习笔记

    <编码checklist规范>学习笔记 <编码checklist规范>posts <编码checklist规范>学习笔记 0 前言 1 排版 1.0 总则 1.1 ...

  5. Win32 多线程的创建方法,区别和联系

    2019独角兽企业重金招聘Python工程师标准>>> Win32多线程的创建方法主要有: CreateThread() _beginthread()&&_begin ...

  6. MFC架构之CWinThread类

    我们知道,Windows以事件驱动方式工作,每个WIN32应用程序都至少包含一个消息队列和一个消息泵.消息队列建立在操作系统提供的内存保留区中,消息泵不断搜寻消息队列,将取得的消息分发给应用程序的各个 ...

  7. 《win32多线程程序设计》学习笔记

    写于2016年6月24日 " vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1:ts=2:sw=2:sts=2 "第一章 为什么千头万绪 {{{ ...

  8. C/C++ 面试题记录

    1.new . delete . malloc . free 的区别与关系? new / delete 是C++的运算符,malloc / free 是C的标准库函数. new会调用对象的构造函数,d ...

  9. Window下线程与线程同步总结

    目录 一 线程创建与使用 线程创建函数 CreateThread与_beginthreadex 等待函数 WaitForSingleObject 和 WaitForMultipleObjects 例程 ...

最新文章

  1. 自动化测试测试工具 AirTest 的使用方法与简介
  2. 监控延迟严重怎么解决_两个月的蓝白猫掉毛严重怎么办,蓝白掉毛严重怎么解决...
  3. 平板电脑安装软件_分享一个将平板作为电脑分屏的软件(文末有链接)
  4. Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分
  5. Extjs不错的博客
  6. Jelinek-Merer与Absolute discounting 平滑方法
  7. android 播放声音资源,android播放音效例子 (翻页音效、警报音效通用 只需传入声音源)...
  8. 数字证书注册审批机构(RA)
  9. [转]asp实现数据库导出excel文件
  10. matlab 偏相关系数,偏相关分析(spss偏相关性分析结果解读)
  11. 蓝牙5.0芯片NRF52840详细参数介绍
  12. 170312-python爬虫 steam愿望单打折商品
  13. LCC编译器的源程序分析(27)基本语句
  14. 并发编程之:线程池(二)
  15. Mac:was built for newer OSX version (10.15) than being linked (10.14)
  16. Go语言之高级篇beego框架之view
  17. sip协议之网络传输方式
  18. 时间序列分析(1)-移动平均法
  19. “硬脱欧”或引发边界混乱 欧盟呼吁做最坏打算
  20. 【视频】IoT 物联网平台实例规格选型详解

热门文章

  1. MacBookpro自动熄屏后过1小时再打开就自动关机了
  2. 缓存雪崩、击穿和穿透
  3. lwip之ARP协议概念
  4. 哈语在线翻译软件-使用哈萨克语翻译汉语日常用语汉语哈语翻译
  5. 小鼠大脑解剖图分区_《小鼠的解剖图谱》.pdf
  6. 前端面试大全(HTMLCSSJS基础)
  7. OpenGL学习之二 -- 初探
  8. 虚幻四蓝图知识点汇总(Base)
  9. 数据结构中的什么是数组?什么是链表?
  10. UE5--我要成为建模大师