Поточная обработка в Objective C

Вот почему так много java-кода раздуто с предложениями if (x!=null) {...}. Не создавайте свои собственные исключения нулевого указателя.

6
задан devios1 25 February 2013 в 22:39
поделиться

3 ответа

Простой способ просто выделить метод в новом потоке - это использовать.

+ (void) detachNewThreadSelector: (SEL) aSelector toTarget: (id) aTarget withObject: (id ) аргумент в NSThread . Если вы не используете сборщик мусора, вам необходимо создать свой собственный пул автозапуска.

Другой простой способ, если вы просто не хотите блокировать основной поток, - использовать.

- (void) performSelectorInBackground :( SEL) aSelector withObject: (id) arg на NSObject

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

18
ответ дан 8 December 2019 в 02:24
поделиться

Если вы разрабатываете с использованием Какао (например, для Mac или iphone), у вас есть доступ к классу NSThread , который можно использовать для многопоточности. Поиск в Google для NSThread найдет вам API.

Вы можете объявить это, как используя:

NSThread *mythread = [[NSThread alloc] initWithTarget:target selector:selector object:argument];

Где цель и селектор - это объект и селектор, с которых вы хотите запустить поток, а аргумент - это аргумент для отправки селектору.

Затем используйте [Myhread start], чтобы запустить его.

9
ответ дан 8 December 2019 в 02:24
поделиться

Вы также можете изучить NSOperation

Чтобы увидеть пример этого, прочтите сообщение Дрю МакКормака на MacResearch .

3
ответ дан 8 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: