iPhone: NSOperationQueue запускает операции поочередно - PullRequest
4 голосов
/ 28 апреля 2010

У меня есть одноэлементное NSOperationQueue, которое обрабатывает все мои сетевые запросы. Однако я замечаю, что когда у меня запущена одна особенно длинная операция (эта операция занимает не менее 25 секунд), другие мои операции не запускаются до тех пор, пока она не завершится.

maxConcurrentOperationCount имеет значение NSOperationQueueDefaultMaxConcurrentOperationCount, поэтому я не верю, что это проблема.

Есть причина, по которой это могло бы произойти? Помимо создания нескольких NSOperationQueues (решение, в котором я не уверен, что оно будет работать, и я не уверен, что это хорошая идея), как лучше всего решить эту проблему?

Спасибо.

1 Ответ

5 голосов
/ 28 апреля 2010

Согласно ссылка на класс NSOperationQueue NSOperationQueueDefaultMaxConcurrentOperationCount означает, что «максимальное количество операций по умолчанию определяется динамически объектом NSOperationQueue на основе текущих условий системы». Я не вижу ничего, что говорит, что по умолчанию будет> 1 (особенно в системе с одним процессором).

Попробуйте вызвать -setMaxConcurrentOperationCount:, чтобы явно установить большее значение, и посмотрите, поможет ли это.

...