我试图了解什么是为后台线程任务创建串行调度组的正确方法。例:

我有一个视频,我想分成5部分。因此,从理论上讲,这将是队列周期:

  • 在后台线程
  • 上运行AVAssetExportSession
  • 等待它完成
  • 通知完成的
  • 在后台线程
  • 上运行AVAssetExportSession
  • 等等

  • 我一直在研究有关此问题的教程,但找不到合适的方法来实现此目的。

    任何帮助都将受到高度重视!

    最好的问候,Roi

    最佳答案

    没有“串行调度组”之类的东西。串行/并发是队列的属性,而不是组的属性。
    鉴于AVAssetExportSession本身是一个异步过程,将其添加到串行队列的简单尝试将不起作用。两种方法似乎合乎逻辑。您可以:

  • 您可以将exportAsynchronously(completionHandler:)包装在异步自定义Operation子类中。然后,您可以将这五个操作添加到串行操作队列中。如果需要,可以给他们单独的完成块。和/或然后可以根据这五个操作进行完成操作。
    要么
  • 您可以编写一个执行请求i的递归函数,在其完成处理程序中,可以让它自己调用i + 1。它只需要检查是否i < 5(或其他)即可。
  • 关于ios - 调度组串行队列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48850430/

    10-14 23:42