我遇到一个问题,我在主节点上运行的进度条动画因同步调用我的串行队列而中断。
以前我没有将此队列用作串行队列,而只是作为异步队列使用 - 但这会在处理输入后台/前台转换时导致问题,我不得不将队列视为同步并且只调用同步而不是异步就可以了。
现在,流程明智的队列使我的应用程序完美运行 - 除了UIView动画现在断断续续(有时超过一秒钟),具体取决于每个同步调用到我的串行队列的负载。
是否有允许同步调用我的串行队列而不会在我的UIView动画中导致这些断断续续?我已经尝试在每个同步块中动态调用一个新动画到我的串行队列,但这并不能解决问题。
答案 0 :(得分:0)
请尝试以下事项:
class CustomOperation:Operation {
var identifier:String?
var index:Int?
override func main() {
/// do sync or async tasks
//// post completion tasks
NotificationCenter.default.post(name: NSNotification.Name("TASKDONE"), object: self)
}
}
func addOperations(){
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.trackOperation(operation:)), name: NSNotification.Name(rawValue: "TASKDONE"), object: nil)
let operationQueue = OperationQueue()
var items = [CustomOperation]()
for index in 0..<10 {
let operation = CustomOperation()
operation.index = index
operation.name = "Operation:\(index)"
items.append(operation)
}
operationQueue.maxConcurrentOperationCount = 1
operationQueue.addOperations(items, waitUntilFinished: false)
}