Многопоточность: выполнение вызовов метода только после завершения выполнения другого метода
Я пытаюсь обработать метод асинхронно, в соответствии с требованиями, как только первый метод завершен, только тогда второй метод должен начать выполняться. Проблема в том, что первый метод сам по себе имеет код, который выполняется в фоновом потоке.
Я попытался dispatch_semaphore_wait, но это тоже не сработало.
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
dispatch_group_t group = dispatch_group_create();
dispatch_group_async(group, queue, ^{
[self firstMethod];
NSLog(@"firstMethod Done");
});
dispatch_group_notify(group, queue, ^ {
NSLog(@"1st method completed");
NSLog(@"2nd method starting");
[self secondMethod];
});
FirstMethod сам работает на другом рабочем потоке, как это
-(void)firstMethod
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
//processing here.....
}];
Каков наилучший способ добиться этого, я не могу изменить определение firstMethod, так как оно предоставлено какой-то третьей стороной, а также изменение его означает изменение большого количества существующего кода, из которого вызывается этот метод