Методы вызова изнутри методов, называемых основной нитью
-
11-12-2019 - |
Вопрос
Я позвонил в класс метода от AppDelegate, как так:
RankingAndSMProcess *process = [RankingAndSMProcess alloc];
[process performSelectorInBackground:@selector(DoRankingAndSocialMediaProcessing) withObject:nil];
[process release];
.
Этот метод вызывает другие методы:
@try {
[self GoForRankingProcess];
[self updateItemsForPeerindex];
[self updateItemsForKloat];
[self updateItemsForKred];
}
@catch (NSException *exception) {
NSLog(@"An Error has been occured:%@", exception);
}
@finally {
[items release];
[profile release];
}
.
Делают все, что все методы, называемые в рамках метода DorankingAndsocialMediaProcessianceSessing в Rankingandsmprocess, должны быть вызваны таким же образом, как в качестве доранкингандсоциальной обработки по фоновой нити?Или здесь еще одна потенциальная проблема?
В настоящее время я не думаю, что какая-либо из методов обработки уволена, поскольку новые данные не собираются.
Перед добавлением изменения вызова для выполнения в фоновом режиме все методы и весь процесс работали, как ожидалось.
Решение
Создайте NSOperation и добавьте эту операцию в NSOPERATIONQUUE. Это создаст новую резьбу параллельно для основного потока, и он также будет выполнять свой метод.
Вот несколько полезных ссылок:
http://www.icodeblog.com/tag/nsoperation/
.http://www.cimgf.COM / 2008/02 / 16 / какао-учебное пособие - Nsoperation-and-nsoPerationQueue /
Другие советы
Что все эти другие методы?Если это запрос на сетевой запрос, например, для фонового потока может быть необходим, может потребоваться запущенная петля для выполнения задачи.