Хотя я обычно использую NSOperation для того, чтобы поток выполнял короткую задачу/операцию, я хотел бы иметь длинный живой выделенный поток, который всегда доступен для обработки определенных операций. Для этого я выделяю новый NSThread и использовать метод initWithTarget:Правильный способ запуска/продолжения runloop
- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument
Мое понимание селектор передается в должно быть основным методом Нить, которая отвечает за запуск runloop. Каков правильный код?
ли какое-то время цикла, как это уместно ...
(void)newThreadMainMethod {
while(1) {
[[NSThread currentThread] run];
}
}
или есть более эффективный способ сделать это так, чтобы нить не занимает ресурсы с бесконечной петли? Я думал о том, чтобы таймер просыпался каждые 0,5 секунды и вызывал бег по потоку в случае, если что-то новое доступно для работы. Буду признателен за ваш вклад.
Спасибо.
Я бы определенно профайл, чтобы убедиться, что это на самом деле быстрее, чем NSOperation, потому что кажется, что NSOperationQueue уже делает то, о чем вы говорите. – Chuck