• 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: 表示线程退出代码
  • 相关阅读:
    2018年7月10日笔记
    2018年7月7日笔记
    2018年7月5日笔记
    2018年7月3日笔记
    sed 命令详解
    《软件构架实践》阅读笔记01
    《掌握需求过程》阅读笔记06
    《掌握需求过程》阅读笔记05
    第十二周进度条
    《掌握需求过程》阅读笔记04
  • 原文地址:https://www.cnblogs.com/fei12/p/AfxBeginThread.html
Copyright © 2020-2023  润新知