Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top