您的位置:首页 > 其它

VS2010 MFC 中线程的使用

2016-06-28 14:27 477 查看

纯粹菜鸟的学习笔记

1、 启动线程:

       CWinThread* AfxBeginThread( 线程函数,this );

       这里的 线程函数 必须是静态成员函数或者全局函数,格式必须是统一的,返回类型必须是UINT,函数只能有一个参数LPVOID.其中UINT就是个无符号

       的整形, LPVOID是void*,所以这个参数表示可以传任何类型的指针过来的.

       AfxBeginThread(ThreadProc,this);//把this传过去,就可以调用类的成员了. 这样线程函数就可以使用和操作类的成员了。千万要注意线程函数是静
         态类函数成员。

2、执行,挂起和恢复执行:

     当线程做完任务或者现在想暂停线程运行,就需要使用SuspendThread来暂停线程的执行,当然恢复线程的执行就是

     使用ResumeThread函数了。

 
   函数SuspendThread和ResumeThread声明如下:

 
        WINBASEAPI DWORD WINAPI SuspendThread(__in
HANDLE hThread);
          WINBASEAPI DWORD WINAPI ResumeThread(__in
HANDLE hThread);
          hThread是线程的句柄。

3、线程的结束:

      (1)调用GetExitCodeThread
获得 code 后调用 AfxEndThread,例如:

       GetExitCodeThread( m_pThreadRecv->m_hThread, &dwExitCode );

       AfxEndThread( dwExitCode, TRUE );

       (2)强行终止进程,据说太暴力,连局部变量都不会释放:

       TerminateThread
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: