标题:关于利用MFC的多线程实现多窗口播放器的问题
只看楼主
wyfivan
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-20
结帖率:100%
已结贴  问题点数:20 回复次数:8 
关于利用MFC的多线程实现多窗口播放器的问题
大家好,我想编一个多窗口同步控制播放器,目前我利用MFC的对话框框架编好了一个可以打开和播放本地文件的播放器窗口。现在我想利用多线程来实现多个窗口,在主界面上通过点击一个按钮来新建线程,通过这个线程来新建一个我编好的播放器窗口,请教一下这一步应该如何实现呢?PS:我使用的开发工具是VC6.0
搜索更多相关主题的帖子: 播放器 对话框 开发 如何 
2013-05-12 14:09
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:15 
通过这个线程来新建一个我编好的播放器窗口?
不要这样,窗口还是用ui线程来做吧,不要用新线程来做。音乐播放在新线程就行了。你需要的只是吧播放(后台工作)线程的数据同步到ui线程去而已

我行我乐
我的博客:
http://blog.yuccn. net
2013-05-13 12:57
wyfivan
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-20
得分:0 
回复 2楼 yuccn
就是说把打开播放之类的功能实现放在后台线程?然后要新建窗口就是新建一个UI线程,这个线程要播放文件就创建一个后台线程来完成这样么?
2013-05-13 18:03
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:0 
回复 3楼 wyfivan
嗯,是的,窗口这些交换的东西,还是留给ui(一般就是主线程,也就是第一个线程)来显示就行了

我行我乐
我的博客:
http://blog.yuccn. net
2013-05-13 21:09
wyfivan
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-20
得分:0 
回复 4楼 yuccn
如果把open,play等函数写在ui线程按钮控件的实现里,是不是可以不用工作者线程了?
2013-05-14 08:21
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:0 
如果 这些函数 不会卡住的,可以再ui现在调用

我行我乐
我的博客:
http://blog.yuccn. net
2013-05-14 19:57
wyfivan
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-20
得分:0 
回复 6楼 yuccn
额,卡住是什么意思呢?我发现这样做了编译没有问题,但是执行的时候有时是好的,有时在主线程创建新的UI线程时会出现程序无响应的情况,请问这是不是你说的卡住了呢?
2013-05-14 20:41
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6809
专家分:42393
注 册:2010-12-16
得分:5 
是的,就是说那个函数等很长时间才返回,如果这个等待的现在是ui线程,就会出现程序无反应的情况

我行我乐
我的博客:
http://blog.yuccn. net
2013-05-14 20:50
wyfivan
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-20
得分:0 
回复 8楼 yuccn
哦,是不是就是说如果UI线程中的某个函数被挂起,那么这个线程就相当于被挂起了,线程中的其他控件也就无法工作了?这种情况应该出现在线程调用其中的某个函数时出现的吧?不应该出现在线程被创建的时候吧?
2013-05-14 21:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406883-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019374 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved