Es hängt alles mit der Hauptwarteschlange zusammen. Es gibt 4 Permutationen.
i) Serielle Warteschlange, asynchroner Versand: Hier werden die Aufgaben nacheinander ausgeführt, aber der Hauptthread (Auswirkung auf die Benutzeroberfläche) wartet nicht auf die Rückgabe
ii) Serielle Warteschlange, Versandsynchronisierung: Hier werden die Aufgaben nacheinander ausgeführt, aber der Hauptthread (Auswirkung auf die Benutzeroberfläche) zeigt eine Verzögerung
iii) Gleichzeitige Warteschlange, asynchroner Versand: Hier werden die Aufgaben parallel ausgeführt und der Hauptthread (Auswirkung auf die Benutzeroberfläche) wartet nicht auf die Rückgabe und ist reibungslos.
iv) Gleichzeitige Warteschlange, Versandsynchronisierung: Hier werden die Aufgaben parallel ausgeführt, aber der Hauptthread (Auswirkung auf die Benutzeroberfläche) zeigt eine Verzögerung
Ihre Wahl der gleichzeitigen oder seriellen Warteschlange hängt davon ab, ob Sie für die nächste eine Ausgabe einer vorherigen Aufgabe benötigen. Wenn Sie von der vorherigen Aufgabe abhängig sind, übernehmen Sie die serielle Warteschlange, andernfalls nehmen Sie die gleichzeitige Warteschlange.
Und schließlich ist dies eine Möglichkeit, zum Hauptthema zurückzukehren, wenn wir mit unserem Geschäft fertig sind:
DispatchQueue.main.async {
// Do something here
}