VC如何对新创建的一个线程暂停或重启

执行AfxBeginThread()函数时,如果成功则返回一个指向新线程对象的CWinThread指针,否则为NULL。就是说它会new一个CWinThread对象,而这个对象在线程运行结束时是会自动删除的。

这样只要得到这一新线程的指针,我们就可以对新线程进行操作了。

向对话框类里面添加一个CWinThread* mythread 的成员变量,不用初始化为NULL,这样会报错的,因为它只能通过AfxBeginThread函数获得。
然后添加一个 pause 按钮向其响应函数里面添加代码 mythread->SuspendThread();   再添加一个 resume按钮,向其响应函数里面添加 mythread->ResumeThread();

要结束一个线程可以在线程内调用AfxEndThread将会直接结束线程,此时线程的一切资源都会被回收。注意在线程中使用了CString类,则不能用AfxEndThread来进行结束线程,会有内存泄漏,只有当程序结束时,会在输出窗口有提示多少byte泄漏了。因为Cstring的回收有其自己的机制。建议在AfxEndThread之前先进行return。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值