AfxBeginThread 创建,挂起,唤醒,终止线程
MFC使用AfxBeginThread()函数创建线程
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,
dwCreateFlags=0,
LPSECURITY_ATTRIBUTES lpSecurityAttrs=NULL
)
pfnThreadProc:表示线程函数指针,函数原型是 UINT ControllingFunction(LPVOID pParameter);
pParam:线程函数的参数 nPriority线程的优先级 nStackSize堆栈大小 dwCreateFlags线程创建标记 lpSecurityAttrs安全属性 pThreadClass派生于CWinThread类的运行时类对象
1、创建挂起线程
CWinThread* pThread;
pThreads = AfxBeginThread(AcceptData,&m_sendUdp, 0, 0, CREATE_SUSPENDED, NULL);//线程挂起的标志CREATE_SUSPENDED
2、挂起一个运行的线程
DWORD SuspendThread(HANDLE hThread);
- hThread: 表示线程句柄
- 返回值: 如果函数执行成功,返回值为之前挂起的线程次数;如果函数执行失败,返回值为0xFFFFFFFF
SuspendThread(pThreads->m_hThread);
3、唤醒挂起的线程
ResumeThread
该函数用于煎炒线程挂起的次数,如果线程挂起的次数为0,将唤醒线程.语法格式如下:
DWORD ResumeThread(HANDLE hThread);
- hThread: 表示线程句柄
- 返回值: 如果函数执行成功,返回值为之前挂起的线程次数;如果函数执行失败,返回值为0xFFFFFFFF
ResumeThread(pThreads->m_hThread)
ExitThread
该函数用于结束当前线程.语法格式如下:
VOID ExitThread(DWORD dwExitCode);
- dwExitCode: 表示线程退出代码
TerminateThread
该函数用于强制终止线程的执行.语法格式如下:
BOOL TerminateThread(HANDLE hThread, DWORD dwExitCode);
- hThread: 表示待终止的线程句柄
- dwExitCode: 表示线程退出代码