我正在寻找一种重新订购NSOperationQueue的方法。
我可以取消所有的操作,然后使用我想要的顺序重新处理它们,但我希望有更干净的东西。有什么想法吗?
发布于 2010-01-27 02:36:16
NSOperationQueue和底层GCD队列之间的主要区别是NSOperation支持操作之间的依赖关系。在NSOperationQueue的所有依赖项完成之前,它不会调度操作。在可用操作中,选择最高优先级的操作下一步运行。
由于操作队列可以同时运行多个操作(根据maxConcurrentOperations),因此队列上没有严格的顺序。您最好使用依赖项API或更改操作优先级。
我相信在将操作添加到队列之后,您可以更改依赖项和优先级。
发布于 2010-01-27 02:33:19
不能对队列中的操作进行重新排序。如果您需要表达一个操作必须接着另一个操作,请使用dependencies API来实现。
有关详细信息,请参阅NSOperationQueue文档。概述的前两段讨论了依赖关系。
https://stackoverflow.com/questions/2141565
复制相似问题