WEB开发网
开发学院软件开发VC 多线程编程之二——MFC中的多线程开发 阅读

多线程编程之二——MFC中的多线程开发

 2007-03-17 22:00:08 来源:WEB开发网   
核心提示: nStackSize:线程为自己分配堆栈的大小,其单位为字节,多线程编程之二——MFC中的多线程开发(2),如果nStackSize被设为0,则线程的堆栈被设置成与父线程堆栈相同大小;dwCreateFlags:如果为0,调用AfxBeginThread()来一次性地创建并启动一个线程,但

nStackSize:线程为自己分配堆栈的大小,其单位为字节。如果nStackSize被设为0,则线程的堆栈被设置成与父线程堆栈相同大小;

dwCreateFlags:如果为0,则线程在创建后立刻开始执行。如果为CREATE_SUSPEND,则线程在创建后立刻被挂起;

lpSecurityAttrs:线程的安全属性指针,一般为NULL;

(2) CWinThread* AfxBeginThread(CRuntimeClass* pThreadClass,
           int nPriority=THREAD_PRIORITY_NORMAL,
           UINT nStackSize=0,
           DWORD dwCreateFlags=0,
           LPSECURITY_ATTRIBUTES lpSecurityAttrs=NULL);

pThreadClass 是指向 CWinThread 的一个导出类的运行时类对象的指针,该导出类定义了被创建的用户界面线程的启动、退出等;其它参数的意义同形式1。使用函数的这个原型生成的线程也有消息机制,在以后的例子中我们将发现同主线程的机制几乎一样。

下面我们对CWinThread类的数据成员及常用函数进行简要说明。

m_hThread:当前线程的句柄;

m_nThreadID:当前线程的ID;

m_pMainWnd:指向应用程序主窗口的指针

BOOL CWinThread::CreateThread(DWORD dwCreateFlags=0,
UINT nStackSize=0,
LPSECURITY_ATTRIBUTES lpSecurityAttrs=NULL);

该函数中的dwCreateFlags、nStackSize、lpSecurityAttrs参数和API函数CreateThread中的对应参数有相同含义,该函数执行成功,返回非0值,否则返回0。

一般情况下,调用AfxBeginThread()来一次性地创建并启动一个线程,但是也可以通过两步法来创建线程:首先创建CWinThread类的一个对象,然后调用该对象的成员函数CreateThread()来启动该线程。

上一页  1 2 3 4 5 6 7  下一页

Tags:线程 编程 MFC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接