您的位置:首页 > 其它

windows线程挂起与唤醒,SuspendThread与ResumeThread的一些相关问题

2014-03-25 20:24 405 查看
            总结一下,创建进程有好多种方法,

           CreateThread:这个函数WIN32api函数,最好不要用这个函数,会造成一些错误(原因还是很深刻的)

          AfxBeginThread:这个方法是MFC特有的创建线程的方法,是MFC对CreateThread函数的封装,改善了CreateThread的一些不足,并且返回的是一个

         CWinThread  *的类型。

         _beginthreadex:是c/c++运行库,也是对CreateThread函数的封装,避免了其的不足,返回值也可以转换为HANDLE类型。我们创建线程时尽量采用AfxBeginThread与

_beginthreadex函数。

 当我们将,CREATE_SUSPENDED传入到AfxBeginThread函数时,可以让线程在创建时处于挂起状态,他的CPU占用权交出,等待被唤醒。
也可以在运行时使用SuspendThread函数来挂起线程,然后使用ResumeThread函数来唤醒线程,值得注意的是,可以使用SupendThread多次挂起线程,线程有一个挂起计数器,初始值是0,挂起一次(含初始挂起),计数器就自增1,ResumeThread以此就自减1,当此计数器为0的时候,线程就被唤醒开始从挂起的地方开始执行。

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