Причина, по которой они не рекомендуют использовать это, вероятно, состоит в том, что у этого есть много накладных расходов. Также он работает только с потоками, которые работают NSRunloop
. Это действительно хорошо для обновления пользовательского интерфейса из вторичного потока.
Для более тяжелой работы вы должны использовать разделяемую память (с блокировками или алгоритмами без блокировки) для связи между потоками. Или даже лучше использовать что-то вроде NSOperationQueue или Grand Central Dispatch и не беспокойтесь о том, чтобы выполнить связь и синхронизацию самостоятельно, если ваша проблема это позволяет.