2010-09-12 5 views
1

Я знаю, что это волнующий вопрос, но он действителен для выполненияSelectorInBackground: в основной теме приложений для iPhone? Я знаю performSelectorOnMainThread: но мне просто интересно, если performSelectorInBackground: также можно использовать в основном потоке. Я понимаю, что это невозможно, потому что performSelectorInBackground: каждый раз генерирует новый поток.performSelectorInBackground: по главной теме

ответ

2

performSelectorInBackground: по существу порождает новую нить, а затем выполняет нужный селектор в этой ветке.

Таким образом, он не выполняется на основной теме. Когда-либо.

Я думаю, что использование performSelector:withObject:afterDelay: без задержки будет соответствовать вашей ситуации, потому что делает выполнить селектор в главном потоке, за исключением того, что она выполняется в следующей итерации текущего цикла выполнения:

[self performSelector:@selector(someMethod) withObject:nil afterDelay:0]; 
Смежные вопросы