问题描述
真奇怪,为什么把暂停状态改为false
后第一个操作的位置没有变化。
let operationQueue = OperationQueue.main
let operation1 = BlockOperation { print("1") }
operation1.queuePriority = .low
let operation2 = BlockOperation { print("2") }
operation2.queuePriority = .normal
let operation3 = BlockOperation { print("3") }
operation3.queuePriority = .high
let operation4 = BlockOperation { print("4") }
operation4.queuePriority = .veryHigh
operationQueue.isSuspended = true
operationQueue.addOperation(operation1)
operationQueue.addOperation(operation2)
operationQueue.addOperation(operation3)
operationQueue.addOperation(operation4)
operationQueue.isSuspended = false
打印输出:
1
4
3
2
预期的打印输出:
4
3
2
1
UPD
仅针对 OperationQueue.main
注意到此行为。对于带有 OperationQueue()
的自定义 maxConcurrentOperationCount = 1
,按预期工作。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)