Когда я использую следующие коды:
let queue = OperationQueue()
let operation = BlockOperation()
for i in 0..<10 {
operation.addExecutionBlock({
print("===\(Thread.current)===\(i)"
})
}
queue.addOperation(operation)
Я создаю асинхронную очередь для выполнения этих операций.И если я использую коды, подобные следующим:
let queue = OperationQueue()
for i in 0..<10 {
queue.addOperation(
print("===\(Thread.current)===\(i)"
)
}
Когда я делаю очередь параллельной, они дают одинаковый результат.Но когда я задаю
queue.maxConcurrentOperationCount = 1
, чтобы сделать очередь последовательной, они отличаются!
Первый из них все еще печатает неупорядоченный результат, как параллельная очередь.Но второй может напечатать упорядоченный результат.
Так в чем разница между ними?Когда я хочу использовать NSOperation, какой я должен использовать?Любая помощь высоко ценится!