一、MFC线程
1. 分类
根据不同的用途,包括工作者线程和用户界面线程
2. 工作者线程
2.1 介绍
没有单独的用户界面,常用来完成后台的耗时的操作
2.2 使用
CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, //线程处理函数
LPVOID pParam, //主线程和子线程之间传递的参数
int nPriority = THREAD_PRIORITY_NORMAL,
UINT nStackSize = 0,
DWORD dwCreateFlags = 0,
LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);
(1)定义线程函数
线程处理函数原型:UINT MyControllingFunction( LPVOID pParam );
(2)创建和启动线程
AfxBeginThread( pfnThreadProc, pParam, ... );
3. 用户界面线程
3.1 介绍
拥有单独的用户界面和消息循环,常用来完成需要与用户交互的操作
3.2 使用
CWinThread* AfxBeginThread( CRuntimeClass* pThreadClass,
int nPriority = THREAD_PRIORITY_NORMAL,
UINT nStackSize = 0,
DWORD dwCreateFlags = 0,
LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);
(1)添加CWinThread类的派生类
(2)在该类的InitInstance( )函数中创建子线程的界面及对象
(3)创建和启动线程
AfxBeginThread( pThreadClass, pParam, ... );