我的MFC程序远程一个WMP实例来捕获WMP事件,并使用IWMPCore、IWMPCore3、IWMPPlaylistCollection、IWMPMediaCollection通过COM与WMP进行交互。远程实例正在查找,并捕获事件,但当我开始获取所有歌曲(几乎5100首歌曲)的所有详细信息时,WMP停止响应,直到我的应用程序获取所有歌曲并释放所有上述实例。有没有人能帮我解决这个问题,如何解决这个问题?
发布于 2015-05-21 19:08:25
WMP ActiveX控件是STA对象,因此所有交互(方法调用)都通过实例化线程,在大多数情况下,实例化线程就是UI线程。也就是说,无论您对接口做什么,调用都会在调用期间阻塞GUI。
您需要在活动中间抽取窗口消息以取消阻止UI (显示进度并让用户点击取消按钮),或者创建一个初始化为STA的工作线程并使用WMP的辅助不可见实例获取收集详细信息。
https://stackoverflow.com/questions/30371470
复制相似问题