У меня есть функция, которая перебирает список элементов, отправляя их на сервер и захватывая ответ. Проблема, с которой я столкнулась, - это цикл, который работает быстрее, чем сервер может обрабатывать. Мне нужно выяснить способ замедления цикла без замораживания приложения. Есть ли способ задержать цикл от перехода к следующему пункту на короткое время? На других языках я бы использовал что-то вроде сна (интервал).slow down for in loop
ответ
Вместо интервала ожидания кажется, что вам нужен блок завершения, который вызывает тот же код снова, пока список не будет пуст. Поэтому, когда он заканчивает запрос, он переходит на следующий.
Также я не думаю, что вы должны пытаться спать, так как он будет удерживать основной поток, что приводит к плохой работе с пользователем.
Похоже, это был бы достойный метод достижения моей конечной цели. Я просто не знаю, как использовать блок завершения. Все примеры, которые я нашел, были основаны на анимации. Есть ли у вас пример работы с http-функциями? Я использую метод post для отправки данных на сервер. – BooMSticK
@BooMSticK Проверьте AFNetworking. Если вы не можете переключиться на другую библиотеку, вы можете проверить этот код для реализации блоков. – GoodSp33d
Не замедляйте процесс. Добавьте сетевые вызовы в очередь операций с ограниченным числом одновременных операций. Возможно, вам придется переписать сетевой код как подкласс NSOperation, но это довольно просто. Вы можете увидеть некоторые примеры в this tutorial.
Существует встроенное ограничение количества одновременных сетевых подключений, которое может быть выполнено в любом случае, но это похоже на то, что ограничение вашего сервера ниже или что вы насыщаете сетевые подключения, а ваши более поздние звонки - когда они были в состоянии начать.
- 1. Slow for loop in python
- 2. Java for loops slow down game
- 3. Matlab Readtable Slow in Loop
- 4. Slow .value function for for loop
- 5. Sleep in For loop
- 6. For-loop in another for-loop VHDL
- 7. For-Else loop in another For loop
- 8. wait for for in loop
- 9. Строка literal in for loop vs stringbuilder in for loop
- 10. Boolean in FOR loop
- 11. Конструктор in for loop
- 12. Linq in For Loop
- 13. preg_replace in for loop
- 14. Понимание For-in Loop
- 15. Arraylist in for-loop
- 16. value ++ in for loop
- 17. Модуль (%) in for-loop
- 18. NullPointerException in for loop
- 19. Loop for in JointJs
- 20. for loop in Flex
- 21. for loop in function
- 22. AddDays() in for loop
- 23. setTimeout in for loop
- 24. for loop in iPhone
- 25. Распечатайте in for loop
- 26. For loop in views
- 27. setInterval in for loop
- 28. javascript for-in loop
- 29. TypeError in for loop
- 30. EXC_BAD_ACCESS in for loop
Это не имеет никакого смысла. Почему вы хотите замедлить процесс сервера? – Rafael
Я не замедляю процесс сервера. Я замедляю время между каждым запросом, отправляемым на сервер. В настоящее время как есть, цикл отправляет все запросы (300+) так быстро, как может, что приводит к ошибкам тайм-аута. – BooMSticK