Нужен фоновый процесс. Нить? - PullRequest
1 голос
/ 24 февраля 2009

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

Ответы [ 3 ]

5 голосов
/ 24 февраля 2009

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

2 голосов
/ 24 февраля 2009

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

Для начала взгляните на справочник Apple по темам .

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

0 голосов
/ 24 февраля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...