użycie dispatch_sync jako blokady mutex

Oto, co muszę zrobić. Mam nadzieję, że dispatch_sync będzie najlepszym sposobem na zrobienie tego za pomocą GCD

Mam pewien fragment krytycznego kodu sekcji, który jest umieszczony w wywołaniu zwrotnym applicationDidBecomeActive w Appdelegate ..

Zawijam tę metodę wewnątrz wywołania dispatch_sync, tak że jest wywoływana tylko raz, niezależnie od tego, ile razy wywoływana jest aplikacja applicationDidBecomeActive

- (void)applicationDidBecomeActive:(UIApplication *)application{    
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{    
    NSLog(@"Thread created");
    //crtical code
    [self runCriticalSection];        
});}

Czy jest to właściwy sposób na wykonanie tego przy użyciu dispatch_sync?

questionAnswers(2)

yourAnswerToTheQuestion