重新排序NSOperationQueue

mou*_*ird 9 iphone cocoa multithreading touch

我正在寻找一种重新排序NSOperationQueue的方法.

我可以取消所有操作,然后按照我想要的顺序将它们折回去,但我希望能有点清洁.有什么想法吗?

Bar*_*ark 21

NSOperationQueue和底层GCD队列之间的主要区别在于NSOperations支持操作之间的依赖关系.NSOperationQueue在完成所有依赖项之前,它不会安排操作.在可用操作中,选择最高优先级操作以便下一次运行.

由于操作队列可以同时运行多个操作(根据maxConcurrentOperations),因此队列上没有严格的顺序感.使用依赖项API或更改操作prorities会更好.

我相信您可以在向队列添加操作后更改依赖关系和优先级.


bbu*_*bum 6

无法重新排序队列中的操作.如果您需要表示一个操作必须接着另一个操作,请使用依赖项API来执行此操作.

有关更多信息,请参阅NSOperationQueue文档.概述的前两段讨论了依赖关系.