Отправка сообщений из фонового потока в основной поток на iOS

У меня есть приложение для iOS, где я выполняю задачи в фоновом потоке. Когда каждая задача завершена, я хочу отправить сообщение в главный поток, чтобы я мог перейти на свой пользовательский индикатор выполнения к соответствующему этапу.

Какой самый простой, но самый безопасный способ добиться этого?

РЕДАКТИРОВАТЬ 1

Это метод, который я использую:

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

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

});

РЕДАКТИРОВАТЬ 2

Вот пример того, что я пытался использовать, используя ответ @ Madboy. В классе, где я выполняю методы в фоновом режиме, у меня есть указатель на мой индикатор выполнения. Мы думаем, что это сработает?(Обратите внимание, что изменение также на EDIT 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. 
}

Ответы на вопрос(3)

Ваш ответ на вопрос