Update für Swift 5
Serielle Warteschlange
let serialQueue = DispatchQueue.init(label: "serialQueue")
serialQueue.async {
// code to execute
}
Gleichzeitige Warteschlange
let concurrentQueue = DispatchQueue.init(label: "concurrentQueue", qos: .background, attributes: .concurrent, autoreleaseFrequency: .inherit, target: nil)
concurrentQueue.async {
// code to execute
}
Aus der Apple-Dokumentation :
Parameter
Etikette
Eine Zeichenfolgenbezeichnung, die an die Warteschlange angehängt werden soll, um sie in Debugging-Tools wie Instruments, Sample, Stackshots und Absturzberichten eindeutig zu identifizieren. Da Anwendungen, Bibliotheken und Frameworks ihre eigenen Versandwarteschlangen erstellen können, wird ein Reverse-DNS-Benennungsstil (com.example.myqueue) empfohlen. Dieser Parameter ist optional und kann NULL sein.
qos
Das Quality-of-Service-Level, das der Warteschlange zugeordnet werden soll. Dieser Wert bestimmt die Priorität, mit der das System Aufgaben für die Ausführung plant. Eine Liste möglicher Werte finden Sie unter DispatchQoS.QoSClass.
Attribute
Die Attribute, die der Warteschlange zugeordnet werden sollen. Fügen Sie das Attribut concurrent hinzu, um eine Versandwarteschlange zu erstellen, in der Aufgaben gleichzeitig ausgeführt werden. Wenn Sie dieses Attribut weglassen, führt die Versandwarteschlange Aufgaben seriell aus.
AutoreleaseFrequency
Die Häufigkeit, mit der Objekte, die von den von der Warteschlange geplanten Blöcken erstellt wurden, automatisch freigegeben werden. Eine Liste möglicher Werte finden Sie unter DispatchQueue.AutoreleaseFrequency .
Ziel
Die Zielwarteschlange, in der Blöcke ausgeführt werden sollen. Geben Sie DISPATCH_TARGET_QUEUE_DEFAULT an, wenn das System eine Warteschlange bereitstellen soll, die für das aktuelle Objekt geeignet ist.