我打算将NSOperationQueue串行而不是并发。
我知道的一种方式是:
NSOperationQueue *globalQueue;
globalQueue.maxConcurrentOperationCount =1;
还有其他办法吗?
答案 0 :(得分:17)
如果需要串行队列,则将maxConcurrentOperation设置为1。您还可以使用[NSOperationQueue mainQueue]而不是创建新队列,从而对主线程进行队列操作。但这仅在添加非常短的操作时才有用,因此不会阻止用户界面。而另一方面,你不必担心线程同步。
您可以使用addOperations向任何队列添加操作:waitUntilFinished:YES或每次添加操作时发送消息waitUntilAllOperationsAreFinished。这样就可以序列化操作,而不是将队列定义为串行。