C++ QTCaptureSession线程问题

C++ QTCaptureSession线程问题,c++,macos,cocoa,webcam,qtkit,C++,Macos,Cocoa,Webcam,Qtkit,我目前正在从事一个项目,涉及打开和接收网络摄像头的数据。在OS X上,我们使用QTKit和QTCaptureSession访问网络摄像头。我们正在开发的模块被主进程的某个线程作为插件加载,导致以下问题: QTCaptureSession的addInput方法用于等待在“主循环”上处理某个事件。由于主循环从不由主线程触发(它不是本机Cocoa应用程序),因此调用插件的线程永远挂起 本文中描述了类似的问题。一个建议的解决方案是在主线程中散布对CFRunLoopRunInMode的调用(kCFRunL

我目前正在从事一个项目,涉及打开和接收网络摄像头的数据。在OS X上,我们使用QTKit和QTCaptureSession访问网络摄像头。我们正在开发的模块被主进程的某个线程作为插件加载,导致以下问题:

QTCaptureSession的addInput方法用于等待在“主循环”上处理某个事件。由于主循环从不由主线程触发(它不是本机Cocoa应用程序),因此调用插件的线程永远挂起

本文中描述了类似的问题。一个建议的解决方案是在主线程中散布对
CFRunLoopRunInMode的调用(kCFRunLoopDefaultMode,0,YES)我们对此进行了测试,它可以工作,但会导致不必要的(和依赖插件的)代码添加到主应用程序中

我的问题是:有没有办法在插件内部“主持”主事件循环QTCaptureSession对话?例如:创建一些能够触发主循环的人工线程等

请注意,我们需要在OSX10.6上实现这一点