ios8中主线程上的AVCaptureSession阻塞UI

ios8中主线程上的AVCaptureSession阻塞UI,ios8,avcapturesession,avcapture,Ios8,Avcapturesession,Avcapture,我们的应用程序使用AVCaptureSession进行二维码/条形码扫描。在iOS 8中有一个简单的关闭按钮没有响应 输出缓冲区似乎正在重载主UI线程 看起来当前输出位于主线程上: [captureOutput setSampleBufferDelegate:self queue:dispatch_get_main_queue()]; 我应该在一个单独的线程上运行这一切吗?当前尝试在后台线程上运行失败。我也遇到了类似的困难。我发现UI线程被我在示例缓冲区委托的captureOutput(AVC

我们的应用程序使用
AVCaptureSession
进行二维码/条形码扫描。在iOS 8中有一个简单的关闭按钮没有响应

输出缓冲区似乎正在重载主UI线程

看起来当前输出位于主线程上:

[captureOutput setSampleBufferDelegate:self queue:dispatch_get_main_queue()];

我应该在一个单独的线程上运行这一切吗?当前尝试在后台线程上运行失败。

我也遇到了类似的困难。我发现UI线程被我在示例缓冲区委托的captureOutput(AVCaptureOutput、CMSampleBuffer、AVCaptureConnection)方法中所做的工作负担过重。我把工作从主线上移开,瞧!一切都好


将DispatchQueue.global()替换为DispatchQueue.main就可以做到这一点。

我正在另一个线程中尝试这样做,但失败了。您是否找到了一种方法来
启动
停止
主线程以外的线程上的东西?当我从非主线程启动时,甚至回调也不会出现。