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: 表示线程退出代码
posted @ 2012-09-28 10:00  飞飞O(∩_∩)  阅读(8714)  评论(0编辑  收藏  举报