2010-01-26 64 views
9

我正在寻找重新排序NSOperationQueue的方法。重新排序NSOperationQueue

我可以取消所有的操作,并按照我想要的顺序折腾回来,但是我希望有一点清洁。有什么想法吗?

回答

21

NSOperationQueue与底层GCD队列之间的主要区别在于NSOperation支持操作之间的依赖关系。 NSOperationQueue在其所有依赖关系完成之前不会安排操作。在可用的操作中,选择最高优先级的操作接下来运行。

由于操作队列可能同时运行多个操作(根据maxConcurrentOperations),所以在队列上没有严格的顺序意义。使用依赖关系API或更改操作权限会更好。

我相信你可以在添加操作到队列后改变依赖关系和优先级。

+0

优先,是的。这会让我足够接近。谢谢! – mousebird 2010-01-26 22:20:03

6

无法对队列中的操作进行重新排序。如果您需要表达一个操作必须来到另一个操作,请使用依赖性API来执行此操作。

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