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