预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

MFC全局函数AfxBeginThread及其与CreateThread的区别(2009-08-1811:03:18)转载标签:afxbeginthreadcreatethreadit分类:技术函数功能描述:创建新的线程函数原型:CWinThread*AfxBeginThread(AFX_THREADPROCpfnThreadProcLPVOIDpParamintnPriority=THREAD_PRIORITY_NORMALUINTnStackSize=0DWORDdwCreateFlags=0LPSECURITY_ATTRIBUTESlpSecurityAttrs=NULL);CWinThread*AfxBeginThread(CRuntimeClass*pThreadClassintnPriority=THREAD_PRIORITY_NORMALUINTnStackSize=0DWORDdwCreateFlags=0LPSECURITY_ATTRIBUTESlpSecurityAttrs=NULL);返回值:指向新创建的线程对象。参数:pfnThreadProc:工作线程的函数指针不可以为空。并且工作线程的函数必须如此声明:UINTMyControllingFunction(LPVOIDpParam);pThreadClass:从CWinThread类继承来的对象的RUNTIME_CLASS指针。pParam:传递给工作线程函数pfnThreadProc的参数。nPriority:线程的优先级。如果为0则与创建它的线程优先级相同。可以通过参考Win32Programmer’sReference中的SetThreadPriority得到所有可用的优先级列表和描述。nStackSize:以字节为单位指定新线程的堆栈大小。如果为0则与创建它的线程的堆栈大小相同。dwCreateFlags:指定一个额外的标志控制线程的产生。它可以包括下面两个值中的一个:CREATE_SUSPENDED:以挂起模式开始线程并且指定挂起次数.当调用ResumeThread时这个线程才会被执行。0:创建之后马上执行线程。lpSecurityAttrs:指向SECURITY_ATTRIBUTES结构的指针结构中指定了线程的安全属性。如果为NULL则与创建它的线程的安全属性相同。如果希望得到更多的有关SECURITY_ATTRIBUTES结构的信息请参考Win32Programmer’sReference。注释:调用这个函数创建一个新的线程。第一种形式的AfxBeginThread创建一个工作线程;第二种形式创建一个用户接口线程。AfxBeginThread创建一个新的CWinThread对象调用它的CreateThread函数开始执行线程并且返回指向线程的指针。Checksaremadethroughouttheproceduretomakesureallobjectsaredeallocatedproperlyshouldanypartofthecreationfail.终止线程可以在线程函数中调用AfxEndThread或者从工作线程的函数中返回。了解更多的有关AfxBeginThread的信息可以参考文章Multithreading:CreatingWorkerThreads和Multithreading:CreatingUser-InterfaceThreadsinVisualC++Programmer’sGuide.参看:AfxGetThread示例:创建一个工作线程:UINTWorkForce(LPVOIDlpParameter);//线程函数声明CWinThread*pMyFirstWorker*pMySecondWorker;LPVOIDpParam=NULL;intnPriority=THREAD_PRIORITY_ABOVE_NORMAL;//默认为THREAD_PRIORITY_NORMALUINTnStackSize=0;//与创建它的线程堆栈大小相同DWORDdwCreateFlags=0;//创建后立即执行LPSECU