1。在Win32 API的基础上,MFC提供了处理线程的类和函数,处理线程的类是CWinThread,函数是AfxBeginThread,AfxEndThread等。
2。用户线程和工作线程区别:用户线程没有消息机制。对于Win32的API编程而言,这2种是没有区别的。
3、用户界面线程创建:
(1)从CWinThread类派生一个有动态创建能力的子类;
(2)重载CWinATHread类的一些虚函数,函数InitInstance是必须重载的,ExitInstance通常是要重载的。
(3)使用AfxBeginThread创建MFC线程对象,并进行初始化工作
(4)如果创建线程时指定了CREATE_SUSPEND,则在适当的地方调用函数ResumeThread开始执行线程
4。AfxBeginThread函数
CWinThread* AFXAPI AfxBeginThread(
CRuntimeClass* pThreadClass, //该导出类定义了被创建用户界面线程
int nPriority,//线程优先级
int nStackSize,//线程的堆栈大小,如果为0,则使用主线程堆栈
DWORD CreateFlags,//创建标志
LPSECURITY_ATTIBUTES lpSecurityAttrs//是否被子线程继承
)
2。用户线程和工作线程区别:用户线程没有消息机制。对于Win32的API编程而言,这2种是没有区别的。
3、用户界面线程创建:
(1)从CWinThread类派生一个有动态创建能力的子类;
(2)重载CWinATHread类的一些虚函数,函数InitInstance是必须重载的,ExitInstance通常是要重载的。
(3)使用AfxBeginThread创建MFC线程对象,并进行初始化工作
(4)如果创建线程时指定了CREATE_SUSPEND,则在适当的地方调用函数ResumeThread开始执行线程
4。AfxBeginThread函数
CWinThread* AFXAPI AfxBeginThread(
CRuntimeClass* pThreadClass, //该导出类定义了被创建用户界面线程
int nPriority,//线程优先级
int nStackSize,//线程的堆栈大小,如果为0,则使用主线程堆栈
DWORD CreateFlags,//创建标志
LPSECURITY_ATTIBUTES lpSecurityAttrs//是否被子线程继承
)