文档详情

MFC全局函数AfxBeginThread.doc

发布:2017-03-12约6.83千字共6页下载文档
文本预览下载声明
MFC全局函数AfxBeginThread?及其与CreateThread的区别 2009-08-18 11:03:18 转载 标签: createthread it 分类: 函数功能描述:创建新的线程 函数原型: CWinThread* AfxBeginThread AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority THREAD_PRIORITY_NORMAL, UINT nStackSize 0, DWORD dwCreateFlags 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs NULL ; CWinThread* AfxBeginThread CRuntimeClass* pThreadClass, int nPriority THREAD_PRIORITY_NORMAL, UINT nStackSize 0, DWORD dwCreateFlags 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs NULL ; 返回值: 指向新创建的线程对象。 参数: pfnThreadProc:工作线程的函数指针,不可以为空。并且工作线程的函数必须如此声明: UINT MyControllingFunction LPVOID pParam ; pThreadClass: 从CWinThread类继承来的对象的RUNTIME_CLASS指针。 pParam:    传递给工作线程函数pfnThreadProc的参数。 nPriority:  线程的优先级。如果为0,则与创建它的线程优先级相同。可以通过参考Win32 Programmer’s Reference中的SetThreadPriority得到所有可用的优先级列表和描述。 nStackSize:  以字节为单位指定新线程的堆栈大小。如果为0,则与创建它的线程的堆栈大小相同。 dwCreateFlags:指定一个额外的标志控制线程的产生。它可以包括下面两个值中的一个: CREATE_SUSPENDED:以挂起模式开始线程,并且指定挂起次数.当调用ResumeThread时,这个 线程才会被执行。 0 :创建之后,马上执行线程。 lpSecurityAttrs:指向SECURITY_ATTRIBUTES结构的指针,结构中指定了线程的安全属性。如果为NULL,则与 创建它的线程的安全属性相同。如果希望得到更多的有关SECURITY_ATTRIBUTES结构的信息, 请参考Win32 Programmer’s Reference。 注释: 调用这个函数创建一个新的线程。第一种形式的AfxBeginThread创建一个工作线程;第二种形式创建一个用户 接口线程。 AfxBeginThread创建一个新的CWinThread对象,调用它的CreateThread函数开始执行线程并且返回指向线程的指 针。Checks are made throughout the procedure to make sure all objects are deallocated properly should any part of the creation fail. 终止线程,可以在线程函数中调用AfxEndThread, 或者从工作线程 的函数中返回。 了解更多的有关AfxBeginThread的信息,可以参考文章 Multithreading: Creating Worker Threads 和 Multithreading: Creating User-Interface Threads in Visual C++ Programmer’s Guide. 参看:AfxGetThread 示例: ??创建一个工作线程: UINT WorkForce LPVOID lpParameter ;//线程函数声明 CWinThread *pMyFirstWorker,*pMySecondWorker; LPVOID pParam NULL; int nPriority THREAD_PRIORITY_ABOVE_NORMAL;//默认为THREAD_PRIORITY_NORMAL UINT nStackSize 0;//与创建它的线程堆栈大小相同 DWORD dwCreateFlags 0;//创建后立即执行 LPSECURITY_ATTRIBUTES lpSecurityAttrs NULL ;//与创建它的线程安全属性相同 pMyFirstWorker AfxBeginThre
显示全部
相似文档