一直对这三个创建线程的方法都搞不清楚,不知道在什么情况下该用那种方法,下面是从网上摘录的一些帖子:
1、不要在一个MFC程序中使用_beginthreadex()或CreateThread()。
这句话的意思是由于AfxBeginThread()是MFC封装的启动线程的函数,里面包含了很多和MFC相关的启动信息,而且封装了一些常用的操作,使用起来也比较简便。而用另外两个函数就需要程序员对类型,安全性检查进行更多的思考!
2、用_beginthreadex()函数应该是最佳选择,因为_beginthreadex()函数是C Run-time Library 中的函数,函数的参数和数据类型都是C Run-time Library中的类型,这样在启动线程时就不需要进行Windows数据类型和C Run-time Library中的数据类型之间的转化。减低了线程启动时的资源消耗和时间的消耗!
3、在C++程序中,几乎都要用到new和delete,难道只有使用_beginthreadex()?
不,因为MFC也是C++类库(只不过是Microsoft的C++类库,不是标准的C++类库),在MFC中也封装了new和delete两中运算符,所以用到new和delete的地方不一定非要使用_beginthreadex() 函数,用其他两个函数都可以!
其实在程序中使用上面的哪个函数并不是绝对的,书的作者只不过是提了一个更佳的搭配方法,我在
MFC程序中也经常使用_beginthreadex()和CreateThread()这两个函数,运行的效果也没有多大的区别,有的时候只是需要你额外的进行一些类型检查和其他的一些转化操作,其余没有其他不妥!
分享到:
相关推荐
并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beginthreadex到底有什么区别,在实际的编程中到底应该使用CreateThread还是_...
介绍了delphi中CreateThread与_beginthreadex本质区别。
_beginthread_和_CreateThread_区别与使用方法
beginthread_和_CreateThread区别
此代码是为初步接触多线程的人员介绍的用CreateThread()函数创建窗口线程。
一个巧妙的线程程序,非常实用
分别采用AfxBeginThread CreateThread 创建线程其中AfxBeginThread工程用的是vs2010 CreateThread 工程用的是vc6.0
多线程编程示例代码,包含CreateThread _beginthread AFXbeginThread 3个API的示例
这两套函数都是用来创建和退出线程的,它们有什么区别呢? 很多开发者不清楚这两者之间的关系,他们随意选一个函数来用,发现也没有什么大问题,于是就忙于解决更为紧迫的任务去了,而没有对它们进行深究。等到有一...
仿多线程的效果一般有2种办法:第一种是通过定时器;第二种是启动多线程,不同模式下启动函数不同,mfc与API... CreateThread是Win32 API函数,AfxBeginThread最终要调到CreateThread。而_beginthread是C的运行库函数。
对于多线程的实现方式本人一般用的是CreateThread、BeginThreadEx,最近有学习C++11和mfc,学会了CThread和AfxBeginThread. 代码中包括了线程的不同实现方式,也包括了线程同步的代码实现
详细介绍了createthread函数 在程序中的运用 对于c++多线程的学习有很大帮助
CreateThread用法详解.doc
采用多线程技术,使用CreateThread WaitForMultipleObjects函数等,实现了5个人赛跑比赛的模拟,并统计比赛结果。是一个比较好的多线程的演示。
易语言类内部多线程源码,类内部多线程,call,StartClass,类_取类指针,类_取类成员指针,CreateThread_class,方法1,方法2,方法3,方法4,取类指针,qqq,zzz,CreateThread,CloseHandle,HeapAlloc,HeapFree,GetProcessHeap,...
易语言CreateThread启动线程传递多个类型参数,可以自定义数据类型,可以传递多个类型的多个参数源码。
主要介绍了VC中CWinThread类以及和createthread API的区别分析,较为详细的讲述了CWinThread类的原理,并以实例形式对AfxBeginThread函数的内部实现进行了解释说明,需要的朋友可以参考下
内容如标题所示,有关java的代码