2009-02-23 3 views
1

Мне нужен фоновый процесс для запуска каждую минуту или около того. Я не хочу, чтобы этот процесс мешал реагированию остальной части приложения. Будет ли это хорошим кандидатом для потока? Если да, то как бы вы предложили мне настроить поток - в частности, какие классы/методы были бы полезными для изучения?Нужен фоновый процесс. Нить?

ответ

2

Это зависит от того, насколько тесно связан фоновый процесс. Возможно, лучше создать отдельную программу, которая будет работать в фоновом режиме.

Для начала ознакомьтесь с информацией об Apple, guide to threads.

Многопотоковое программирование не для слабонервных, поэтому вы должны быть уверены, что понимаете идеи и предостережения позади него - и, возможно, сначала попробуйте другие решения. Если этот «фоновый процесс» не очень тяжелый, вы можете почти наверняка уйти, просто используя таймер в своей основной теме. Если это не тесно связано с внутренними компонентами вашего приложения, «рабочая» программа может быть хорошей идеей.

5

Это звучит неплохо для кандидата NSOperation и NSOperationQueue - упакуйте свой рабочий блок как операцию и при необходимости погасите его. Для выполнения бит "каждую минуту или около того" NSTimer является неудивительным вариантом.

0

Это действительно зависит от того, что делает фоновый процесс, какие ресурсы ему нужны для доступа и т. Д. Если вы просто хотите вызвать someMethod: каждую минуту, используйте NSTimer. Если вам действительно нужно что-то вроде NSOperationQueue, я бы предложил изучить эту замену, в которой рассматриваются некоторые ошибки в текущей реализации.

http://www.mikeash.com/?page=pyblog/raoperationqueue-an-open-source-replacement-for-nsoperationqueue.html

+0

Яблоко исправлена ​​ошибка, теперь, мы свободны использовать NSOperationQueue еще раз - http://www.mikeash.com/pyblog/use-nsoperationqueue.html –