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: 表示線程退出代碼