VS2010 MFC 中线程的使用

纯粹菜鸟的学习笔记


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


你可能感兴趣的:(VS2010 MFC 中线程的使用)