Solução alternativa no limite de threads no Grand Central Dispatch?

ComDespacho do Grand Central, pode-se facilmente executar uma tarefa demorada em um thread não principal, evitar o bloqueio do cabeçalho principal e manter a interface do usuário responsiva. Simplesmente usandodispatch_async e executar a tarefa em uma fila simultânea global.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // code
});

No entanto, algo parece bom demais para ser verdade como este geralmente tem seu lado negativo. Depois de usarmos muito isso em nosso projeto de aplicativo para iOS, recentemente descobrimos que há um limite de 64 segmentos nele. Quando atingirmos o limite, o aplicativo congelará / travará. Ao pausar o aplicativo com o Xcode, podemos ver que o segmento principal é mantido porsemaphore_wait_trap.

Pesquisando na web, confirma que outros estão encontrando esse problema também, mas até agora nenhuma solução encontrada para isso.

Dispatch Thread Hard Limit Atingido: 64 (muitos encadeamentos de envio bloqueados em operações síncronas)

Outra questão do stackoverflow confirma que este problema ocorre ao usardispatch_sync edispatch_barrier_async também.

Questão:
Como o Grand Central Dispatch tem um limite de 64 threads, existe alguma solução para isso?

Desde já, obrigado!

questionAnswers(1)

yourAnswerToTheQuestion