欢迎来到天天文库
浏览记录
ID:40560446
大小:48.00 KB
页数:6页
时间:2019-08-04
《MFC全局函数AfxBeginThread》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MFC全局函数AfxBeginThread 及其与CreateThread的区别(2009-08-1811:03:18)转载标签:afxbeginthreadcreatethreadit分类:技术函数功能描述:创建新的线程函数原型:CWinThread*AfxBeginThread(AFX_THREADPROCpfnThreadProc,LPVOIDpParam,intnPriority=THREAD_PRIORITY_NORMAL,UINTnStackSize=0,DWORDdwCreateFlags=0,LPSECURITY_ATT
2、RIBUTESlpSecurityAttrs=NULL);CWinThread*AfxBeginThread(CRuntimeClass*pThreadClass,intnPriority=THREAD_PRIORITY_NORMAL,UINTnStackSize=0,DWORDdwCreateFlags=0,LPSECURITY_ATTRIBUTESlpSecurityAttrs=NULL);返回值:指向新创建的线程对象。参数:pfnThreadProc:工作线程的函数指针,不可以为空。并且工作线程的函数必须如此声明:
3、 UINTMyControllingFunction(LPVOIDpParam);pThreadClass:从CWinThread类继承来的对象的RUNTIME_CLASS指针。pParam: 传递给工作线程函数pfnThreadProc的参数。nPriority: 线程的优先级。如果为0,则与创建它的线程优先级相同。可以通过参考Win32Programmer’s Reference中的SetThreadPriority得到所有可用的优先级列表和描述。nStackSize: 以字节为单位指定新
4、线程的堆栈大小。如果为0,则与创建它的线程的堆栈大小相同。dwCreateFlags:指定一个额外的标志控制线程的产生。它可以包括下面两个值中的一个: CREATE_SUSPENDED:以挂起模式开始线程,并且指定挂起次数.当调用ResumeThread时,这个 线程才会被执行。 0 :创建之后,马上执行线程。lpSecurityAttrs:指向SECURITY_ATTRIBUTES结构的指针,结构中指定了线程的安全属性。如果为NULL,则与
5、 创建它的线程的安全属性相同。如果希望得到更多的有关SECURITY_ATTRIBUTES结构的信息, 请参考Win32Programmer’sReference。注释:调用这个函数创建一个新的线程。第一种形式的AfxBeginThread创建一个工作线程;第二种形式创建一个用户接口线程。AfxBeginThread创建一个新的CWinThread对象,调用它的CreateThread函数开始执行线程并且返回指向线程的指针。Checksaremadethroughouttheprocedu
6、retomakesureallobjectsaredeallocatedproperlyshouldanypartofthecreationfail.终止线程,可以在线程函数中调用AfxEndThread,或者从工作线程的函数中返回。了解更多的有关AfxBeginThread的信息,可以参考文章 Multithreading:CreatingWorkerThreads和Multithreading:CreatingUser-InterfaceThreadsinVisualC++Programmer’sGuide.参看:AfxGetThr
7、ead示例: 创建一个工作线程:UINT WorkForce(LPVOIDlpParameter);//线程函数声明CWinThread *pMyFirstWorker,*pMySecondWorker;LPVOID pParam=NULL;int nPriority=THREAD_PRIORITY_ABOVE_NORMAL;//默认为THREAD_PRIORITY_NORMALUINT nStackSize=0;//与创建它的线程堆栈大小相同DWORD dwCreateFl
8、ags=0;//创建后立即执行LPSECURITY_ATTRIBUTESlpSecurityAttrs=NULL;//与创建它的线程安全属性相同pMyFirstWorker=AfxBeginThread((
此文档下载收益归作者所有