Я запускаю свой ASIHTTPrequest синхронно в отдельном потоке, например:
//inside this start method I create my ASIHTTPRequest and start it
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[process start];
});
Но блок завершения все еще запускается в основном потоке. Можно ли сохранить выполнение блока завершения в том же потоке, где был запущен запрос?
Единственное, что я могу придумать, чтобы решить эту проблему, - это определить очередь отправки и вручную выполнить завершение блока в том же потоке, удерживая, таким образом, ссылку на созданную очередь. Но это не решает проблему напрямую, потому что вы пропустите небольшой момент в основном потоке, прежде чем перенаправить остальную часть кода в созданную очередь отправки.
У кого-нибудь есть лучшее решение?
РЕДАКТИРОВАТЬ: То же самое относится и к блокам завершения AFNetworking ...