Avatar ·

Comment utiliser correctement dispatch_sync, dispatch_async, dispatch_after et autres fonctions GCD en Swift 3, 4 et versions ultérieures ?

Bonjour à tous ! Je passe d'Objective-C à Swift et je suis confus avec Grand Central Dispatch (GCD) après la sortie de Swift 3. Avant, j'écrivais quelque chose comme : ```swift dispatch_async(dispatch_get_main_queue(), { // mise à jour de l'UI }) ``` Mais maintenant Xcode me dit que c'est incorrect. Je comprends qu'Apple a modifié l'API, mais je ne trouve pas d'explication claire sur la façon de travailler avec GCD en Swift 3, 4 et versions ultérieures. J'ai besoin de comprendre : 1. Comment exécuter du code de manière asynchrone sur la file principale (pour mettre à jour l'UI) ? 2. Comment exécuter du code de manière synchrone (dispatch_sync) sur une file d'arrière-plan ? 3. Comment créer un délai avant l'exécution (dispatch_after) ? 4. Comment créer ma propre file d'attente ? J'ai essayé d'écrire ceci, mais cela ne fonctionne pas : ```swift DispatchQueue.main.async { // code } DispatchQueue.global().sync { // code } ``` S'il vous plaît, expliquez à un débutant en Swift comment utiliser correctement GCD en Swift moderne. Idéalement avec des exemples que je pourrais copier et utiliser immédiatement.