【发布时间】:2020-04-04 20:32:22
【问题描述】:
我正在尝试探索 queuePriority of Operation。我有三个具有 queuePriority 非常高、高和正常的操作对象。但是我得到了意外的输出,在日志中我可以看到 queuePriority 非常高的 Operation 对象并不总是首先执行。请帮忙。
let operationQueue = OperationQueue()
let op1 = BlockOperation()
let op2 = BlockOperation()
let op0 = BlockOperation()
op0.completionBlock = {
print("op0 completionBlock")
}
op0.addExecutionBlock {
print("op0 executionBlock #1")
}
op0.addExecutionBlock {
print("op0 executionBlock #2")
}
op0.queuePriority = .veryHigh
op1.completionBlock = {
print("op1 completionBlock")
}
op1.addExecutionBlock {
print("op1 executionBlock")
}
op1.queuePriority = .high
op2.completionBlock = {
print("op2 completionBlock")
}
op2.addExecutionBlock {
print("op2 executionBlock")
}
op2.queuePriority = .normal
operationQueue.addOperations([op2, op1, op0], waitUntilFinished: true)
输出: op1 执行块 op0 执行块#1 op0 执行块 #2 op2 执行块 op1 完成块 op0 完成块 op2 完成块
【问题讨论】:
标签: ios nsoperationqueue nsoperation