23

我打算使 NSOperationQueue 串行而不是并发。

我知道的一种方法是:

NSOperationQueue *globalQueue;
globalQueue.maxConcurrentOperationCount =1;

还有其他方法吗?

4

1 回答 1

20

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

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

于 2013-02-21T06:56:19.730 回答