Ios 如何使NSOperationQueue串行化?

Ios 如何使NSOperationQueue串行化?,ios,objective-c,nsoperationqueue,Ios,Objective C,Nsoperationqueue,我打算将NSOperationQueue设置为串行而不是并发 我知道的一个方法是: NSOperationQueue *globalQueue; globalQueue.maxConcurrentOperationCount =1; 还有其他方法吗?如果需要串行队列,可以将maxConcurrentOperation设置为1。您还可以使用[NSOperationQueue mainQueue],而不是创建新队列,从而在主线程上执行队列操作。但这只有在添加了非常短的操作并且用户界面没有被阻塞时才

我打算将NSOperationQueue设置为串行而不是并发

我知道的一个方法是:

NSOperationQueue *globalQueue;
globalQueue.maxConcurrentOperationCount =1;

还有其他方法吗?

如果需要串行队列,可以将maxConcurrentOperation设置为1。您还可以使用[NSOperationQueue mainQueue],而不是创建新队列,从而在主线程上执行队列操作。但这只有在添加了非常短的操作并且用户界面没有被阻塞时才有用。另一方面,您不必担心线程n同步


您可以使用addOperations:waitUntilFinished:YES将操作添加到任何队列中,或者在每次添加操作时发送消息WaitUntilAllOperations已完成。这样您就可以序列化操作,而不是将队列定义为串行。

这样做有什么问题?唯一的方法是什么?还有别的办法吗?是的,这是唯一的办法。有人能给我解释一下为什么这个问题被关闭了吗?不难看出这里有什么问题。它不是模棱两可的、模糊的、不完整的或过于宽泛的。它可能很短,但它切中要害。怎么了?我个人喜欢读不止一个人的答案。这并不是说加布里埃尔的回答不好。真的很好。我只是想听听更多关于使用这门课的信息。那么,说真的,有没有其他方法使
NSOperationQueue
串行化?或者换一种说法,有没有“最好”的方法来处理并发类的串行队列?我同意,这对我来说似乎是个好问题。就我而言,我通过在每个添加的NSO操作上使用addDependency:并将之前添加的操作设置为下一个操作的依赖项,使队列串行化。这确保了操作将按照添加的顺序运行。您认为有必要为每个操作添加依赖项链吗?我不认为将maxConcurrentOperation设置为1会使操作串行,如果按串行,则表示操作排队的顺序是保持的。为了保持插入顺序,必须在操作之间添加依赖项。NSOperationQueue在默认情况下是并发的,并且不维护选择执行操作的顺序。例如:如果操作按1、2、3、4排队,那么它们可能会按2、3、1、4的顺序执行。@KunalShrivastava是对的。“如果所有排队的操作都具有相同的队列优先级,并且在放入队列时准备好执行,也就是说,它们的isReady属性返回true,它们将按照提交到队列的顺序执行。”@KunalShrivastava那么,使操作队列串行化的正确方法是什么?