Enviando mensagens do thread de segundo plano para o thread principal no iOS

Eu tenho um aplicativo para iOS em que estou concluindo tarefas no thread em segundo plano. À medida que cada tarefa é concluída, quero enviar uma mensagem para o thread principal para que eu possa mover minha barra de progresso personalizada para o estágio apropriado.

Qual é a maneira mais simples e segura de conseguir isso?

EDITAR 1

Este é o método que estou usando:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 
                                         (unsigned long)NULL), ^(void) {

     // get background tasks done. 
     [self.background backgroundMethod];

});

EDIT 2

Aqui está um exemplo do que eu tentaria usar a resposta do @Madboy. Dentro da classe onde eu executo métodos em segundo plano, eu tenho um ponteiro para a minha barra de progresso. Achamos que isso funcionaria?(Por favor, note a mudança também para EDITAR 1).

@implementation BackgroundClass
@synthesize delegate;
@synthesize customProgressBar

- (void)backgroundMethod
{
    // Run tasks
}

- (void)delegateSaysBackgroundMethodIsFinished
{
    [self performSelectorOnMainThread:@selector(tasksDone:) withObject:self.customProgressBar waitUntilDone:NO];

}

@implementation CustomProgressBar

- (void)tasksDone
{
    // change UI to reflect progress done. 
}