Изучить Центральная отправка, это - предпочтительный способ сделать мультипронизывание на iOS (и Mac).
Простой пример использования GCD был бы похож:
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
//do long running task here
}
Это выполнит блок асинхронно главной нити. У GCD есть многочисленные другие способы отправить задачи, один взятый непосредственно из упомянутой выше статьи Wikipedia:
dispatch_apply(count, dispatch_get_global_queue(0, 0), ^(size_t i){
results[i] = do_work(data, i);
});
total = summarize(results, count);
Этот конкретный пример кода, вероятно, точно, что вы ищете, предполагая, что этой "большой задачей", вашей, является a смущающе параллельный.