Мне нужен фоновый процесс для запуска каждую минуту или около того. Я не хочу, чтобы этот процесс мешал реагированию остальной части приложения. Будет ли это хорошим кандидатом для потока? Если да, то как бы вы предложили мне настроить поток - в частности, какие классы/методы были бы полезными для изучения?Нужен фоновый процесс. Нить?
ответ
Это зависит от того, насколько тесно связан фоновый процесс. Возможно, лучше создать отдельную программу, которая будет работать в фоновом режиме.
Для начала ознакомьтесь с информацией об Apple, guide to threads.
Многопотоковое программирование не для слабонервных, поэтому вы должны быть уверены, что понимаете идеи и предостережения позади него - и, возможно, сначала попробуйте другие решения. Если этот «фоновый процесс» не очень тяжелый, вы можете почти наверняка уйти, просто используя таймер в своей основной теме. Если это не тесно связано с внутренними компонентами вашего приложения, «рабочая» программа может быть хорошей идеей.
Это звучит неплохо для кандидата NSOperation
и NSOperationQueue
- упакуйте свой рабочий блок как операцию и при необходимости погасите его. Для выполнения бит "каждую минуту или около того" NSTimer
является неудивительным вариантом.
Это действительно зависит от того, что делает фоновый процесс, какие ресурсы ему нужны для доступа и т. Д. Если вы просто хотите вызвать someMethod: каждую минуту, используйте NSTimer. Если вам действительно нужно что-то вроде NSOperationQueue, я бы предложил изучить эту замену, в которой рассматриваются некоторые ошибки в текущей реализации.
Яблоко исправлена ошибка, теперь, мы свободны использовать NSOperationQueue еще раз - http://www.mikeash.com/pyblog/use-nsoperationqueue.html –