如何启动后台线程(多线程)而不阻塞Swift中的主线程?

时间:2015-09-16 16:03:56

标签: ios multithreading swift

我正在尝试执行" captureOutput"功能。每1 / X s调用此功能(X取决于摄像机设备的fps)。例如,如果摄像机设置为30fps,则将调用每个0 03。

现在,我想创建一个线程并在不同的上下文中执行它,当结束将结果发送到主线程并连续接受新帧时。

要做到这一点,我尝试使用GDC,如下所示:

 private var processImageQueue:dispatch_queue_t = dispatch_queue_create("process_image", DISPATCH_QUEUE_CONCURRENT)


    dispatch_async(processImageQueue, {

        println("new despatch");



        let resultFrame:[Frames] = processImages(sampleBuffer,self.countFrames)

          dispatch_async(dispatch_get_main_queue()) {
                self.insertFrames(resultFrame)
           })

   })

但是这个执行阻止了Frames getter。为什么?创建多线程进程的最佳选择是什么?的NSOperation?我也试过,但同样的事情,我没有得到相同的帧率捕获。

感谢

0 个答案:

没有答案