NSOperation и запуск класса с методом - PullRequest
0 голосов
/ 09 декабря 2011

Допустим, у меня есть класс, а * classMain является объектом для этого класса.Теперь этот класс как метод экземпляра - performAction.Так что обычно для запуска метода я бы сделал:

[classMain performAction]

Теперь, если я хочу использовать NSOperationQueue для запуска, я бы сделал:

NSOperationqueue *opQueue = [[NSOperation alloc] init];
[opQueue addOperation: classMain].

Что я хочуна самом деле это добавить [classMain performAction] в очередь, чтобы я мог запустить нужный мне метод?

Также есть ли лучший рекомендуемый способ запуска потоков (чтобы мое приложение не блокировалось) в 10.7?

1 Ответ

0 голосов
/ 09 декабря 2011

Существует множество способов запуска потоков и выполнения различных действий в разных потоках.Этот ресурс может оказаться полезным:

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html

И если у вас есть простая задача, которую вы хотите запустить в фоновом режиме, не блокируя приложение, вы можете обнаружить, что наиболее простымРешение состоит в том, чтобы использовать executeSelectorInBackground: withObject: .

Что касается того, какой подход рекомендуется, он действительно зависит от вашего конкретного варианта использования и того, какую работу вы переносите в отдельный поток.

...