iOS Exécution sur le thread principal


Exemple

Lors de l'exécution asynchrone de tâches, il devient généralement nécessaire de s'assurer qu'un morceau de code est exécuté sur le thread principal. Par exemple, vous voudrez peut-être frapper une API REST de manière asynchrone, mais placez le résultat dans un UILabel à l'écran. Avant de mettre à jour le UILabel, vous devez vous assurer que votre code est exécuté sur le thread principal:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //Perform expensive tasks
    //...

    //Now before updating the UI, ensure we are back on the main thread
    dispatch_async(dispatch_get_main_queue(), ^{
        label.text = //....
    });
}

Chaque fois que vous mettez à jour des vues à l'écran, assurez-vous toujours de le faire sur le thread principal, sinon un comportement indéfini pourrait se produire.