ios NSOperationQueue,操作全部运行时添加并且不排队

所以,我有一组ASINetworkQueues,当前一起运行导致DB保存竞争条件。 我想创build一个NSOperationQueue,将排队这些“子队列”中的每一个。 我目前已经创build了一个主要的方法,启动“子队列”开始下载NSOperation。

我的问题是,每次我使用“addOperation”添加一个子队列到主队列,它会直接触发“main”方法,所以我的子队列同时运行。 我印象深刻的主要方法是一次被解雇。 即仅用于队列顶部的操作。

也许我错过了这里的东西,但我似乎无法弄清楚如何拖延其他操作,直到第一个完成。 此外,我似乎甚至不能让我的程序进入NSOperation isReady = 0的情况下..总是给回答是的。

这里有一些代码:

注意:我已经将NSOperation队列maxConcurrentOperations设置为1。

NSOperation主要方法:

-(void)main { [subQueue download]; } 

设置队列:

 ChapterDownloadOperation *cdo = [[ChapterDownloadOperation alloc] init]; cdo.chapter = ch; [chapterDownloadQueue addOperation:cdo]; [cdo release]; 

如果我添加多个操作,则主方法会在添加到队列的实例上触发。 是否有另一个function,我应该重写和使用,当操作准备摇摆。 我有一个感觉,主要的方法是设置操作。

任何想法不胜感激。

非常感谢。

NSOperationQueue将尽快启动主要方法,以平衡额外的处理能力。

要将队列一次限制为一个操作,可以尝试在对每个操作进行排队之前添加依赖关系:[B addDependency:A]; 直到A执行完毕,// [B main]才会被调用

但请注意,如果A被取消,B仍然会运行。

希望有所帮助!