C++多线程编程如何让一个循环的子线程暂停和恢复

我有这样的一个程序,这个程序的子线程是重复播放背景音乐的,那么我这个子线程肯定要是循环执行的。现在问题来了,我鼠标点击某个位置的时候,我要用SuspendThread()... 我有这样的一个程序,这个程序的子线程是重复播放背景音乐的,那么我这个子线程肯定要是循环执行的。现在问题来了,我鼠标点击某个位置的时候,我要用SuspendThread()这个函数来挂起这个子线程,停止音乐的播放,但是我挂起这个线程无法停止这个循环啊,他就在一直循环,这样我也没法再点击另一个区域恢复这个循环。请问这个问题该怎么解决呢? 展开
 我来答
bh...b@163.com
推荐于2017-09-25 · TA获得超过1008个赞
知道小有建树答主
回答量:2796
采纳率:20%
帮助的人:1054万
展开全部
暂停线程必须想一个办法在能控制线程在能暂停的地方暂停,暂停点不能有任何数据已经上锁,上面说的那种while循环中也不能被暂停,还有一种就是当有大量内存被申请且还没有释放之前最好也不要被暂停。我建议大家用手动模式的信号量来实现。像这样申请一个信号量:
hEvent=::CreateEvent(NULL,TURE,TURE,lpName);//第二个参数是TURE,设定为手动模式,防止::WaitForSingleObject改变信号量的状态。
317343
2015-08-22
知道答主
回答量:39
采纳率:0%
帮助的人:11.4万
展开全部
用个全局变量来控制 Boolean型的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式