我打算使NSOperationQueue串行而不是并发。我知道的一个方法是:
NSOperationQueue *globalQueue; globalQueue.maxConcurrentOperationCount =1;
还有别的办法吗?
5sxhfpxr1#
如果你想要一个串行队列,你可以将maxConcurrentOperation设置为1。您还可以使用[NSOperationQueue mainQueue]而不是创建新队列,从而在主线程上对操作进行队列处理。但只有在添加了非常短的操作并且用户界面不会被阻塞的情况下,这才有用。另一方面,你不必担心线程和同步。您可以使用addOperations:waitUntilFinished:YES或在每次添加操作时发送消息waitUntilAllOperationsAreFinished向任何队列添加操作。这样,您就序列化了操作,而不是将队列定义为序列。
1条答案
按热度按时间5sxhfpxr1#
如果你想要一个串行队列,你可以将maxConcurrentOperation设置为1。您还可以使用[NSOperationQueue mainQueue]而不是创建新队列,从而在主线程上对操作进行队列处理。但只有在添加了非常短的操作并且用户界面不会被阻塞的情况下,这才有用。另一方面,你不必担心线程和同步。
您可以使用addOperations:waitUntilFinished:YES或在每次添加操作时发送消息waitUntilAllOperationsAreFinished向任何队列添加操作。这样,您就序列化了操作,而不是将队列定义为序列。