При использовании GCD мы хотим подождать до тех пор, пока не будут выполнены и не выполнены два блока асинхронизации, прежде чем перейти к следующим этапам выполнения. Каков наилучший способ сделать это?
Мы попробовали следующее, но оно не работает:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
// block1
});
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
// block2
});
// wait until both the block1 and block2 are done before start block3
// how to do that?
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
// block3
});