У меня есть вызов, который идет на сервер. Я хочу, чтобы обратный вызов здесь выполнялся асинхронно во вторичном потоке, который не является потоком пользовательского интерфейса. Core Data здесь зависает, и я хотел бы попытаться сделать приложение более отзывчивым. Каков наилучший способ запустить этот обратный вызов во вторичном потоке? Пример кода был бы замечательным!Запуск блока какао во вторичной теме
[[SomeServer sharedInstance] doServerCallCallback:^(NSObject *param) {
NSManagedObjectContext *moc = [MYAPPDELEGATE managedObjectContext];
/* do more stuff with param */
[MYAPPDELEGATE saveManagedObjectContext];
}];
Сам вызов сервер не должен быть во вторичном потоке, однако код выполняется в блоке должно быть.
Не нужно изменять реализацию SomeServer. Блок, который вы передаете ему, может отправить работу в очередь с потоком. –
@GrahamLee Это зависит от того, хочет ли OP один блок или любой блок, который может быть передан серверу для запуска в другом потоке. Ваш подход прекрасен, но только в первом случае; изменение сервера позаботится об этом для всех случаев. – Caleb