2

我需要运行几个函数,函数的执行顺序非常重要。我有两个需要运行的非异步函数,然后是两个需要在此之后执行的异步函数。所有功能必须在前一个功能完成后执行。

到目前为止,我有以下内容。但是,异步函数似乎不遵循我已经列出的依赖关系。一旦队列开始,两个异步函数都会执行。

有什么我想念的吗?任何帮助表示赞赏!:)

let queue = OperationQueue()


let operation1 = BlockOperation {
    nonAsyncFunc1()
}
let operation2 = BlockOperation {
    nonAsyncFunc2()
}
let operation3 = BlockOperation {
    asyncFunc1()
}
let operation4 = BlockOperation {
    asyncFunc2()
}
                                    
operation2.addDependency(operation1)
operation3.addDependency(operation2)
operation4.addDependency(operation3)
                    
self.queue.addOperation(operation1)
self.queue.addOperation(operation2)
self.queue.addOperation(operation3)
self.queue.addOperation(operation4)
4

0 回答 0