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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM