2012-03-17 2 views

ответ

3

Синхронный запрос останавливает приложение от любого действия пользователя до его завершения, поскольку он работает в основном потоке.

Асинхронный не работает, как работает в другой теме.

+1

Синхронный запрос выполняется по любому потоку, который был вызван. Если вы делаете синхронный запрос из фонового потока, фоновый поток блокируется до тех пор, пока запрос не будет завершен, но не ваш основной поток. – gnasher729

1

Вы всегда должны использовать асинхронные запросы, поскольку они не блокируют поток, из которого они вызваны. Вместо этого они вызовут ваши методы делегирования, когда соединение завершится с ошибкой или удастся. Если вам нужно запретить пользователю что-либо делать во время соединения, используйте класс HUD, например MBProgressHUD (проверьте github).

0

Вы должны использовать асинхронные вызовы при вызове из основного потока. В противном случае весь пользовательский интерфейс перестанет отвечать на запросы (то есть: заморозить), пока сервер не ответит. (Пользовательский интерфейс поддерживается основным потоком).

Вы хотите использовать синхронные вызовы, когда вы звоните из другого потока, и хотите, чтобы он дождался ответа, прежде чем продолжить. Если вы вручную создали поток, вызов асинхронного из этого нового потока создаст третий поток.

Асинхронный означает, что «вызывающий орган» не будет ждать выполнения задачи.

Смежные вопросы