注册 登录
编程论坛 VC++/MFC

关于利用MFC的多线程实现多窗口播放器的问题

wyfivan 发布于 2013-05-12 14:09, 1293 次点击
大家好,我想编一个多窗口同步控制播放器,目前我利用MFC的对话框框架编好了一个可以打开和播放本地文件的播放器窗口。现在我想利用多线程来实现多个窗口,在主界面上通过点击一个按钮来新建线程,通过这个线程来新建一个我编好的播放器窗口,请教一下这一步应该如何实现呢?PS:我使用的开发工具是VC6.0
8 回复
#2
yuccn2013-05-13 12:57
通过这个线程来新建一个我编好的播放器窗口?
不要这样,窗口还是用ui线程来做吧,不要用新线程来做。音乐播放在新线程就行了。你需要的只是吧播放(后台工作)线程的数据同步到ui线程去而已
#3
wyfivan2013-05-13 18:03
回复 2楼 yuccn
就是说把打开播放之类的功能实现放在后台线程?然后要新建窗口就是新建一个UI线程,这个线程要播放文件就创建一个后台线程来完成这样么?
#4
yuccn2013-05-13 21:09
回复 3楼 wyfivan
嗯,是的,窗口这些交换的东西,还是留给ui(一般就是主线程,也就是第一个线程)来显示就行了
#5
wyfivan2013-05-14 08:21
回复 4楼 yuccn
如果把open,play等函数写在ui线程按钮控件的实现里,是不是可以不用工作者线程了?
#6
yuccn2013-05-14 19:57
如果 这些函数 不会卡住的,可以再ui现在调用
#7
wyfivan2013-05-14 20:41
回复 6楼 yuccn
额,卡住是什么意思呢?我发现这样做了编译没有问题,但是执行的时候有时是好的,有时在主线程创建新的UI线程时会出现程序无响应的情况,请问这是不是你说的卡住了呢?
#8
yuccn2013-05-14 20:50
是的,就是说那个函数等很长时间才返回,如果这个等待的现在是ui线程,就会出现程序无反应的情况
#9
wyfivan2013-05-14 21:18
回复 8楼 yuccn
哦,是不是就是说如果UI线程中的某个函数被挂起,那么这个线程就相当于被挂起了,线程中的其他控件也就无法工作了?这种情况应该出现在线程调用其中的某个函数时出现的吧?不应该出现在线程被创建的时候吧?
1