อัปเดตสำหรับ swift 5
คิวอนุกรม
let serialQueue = DispatchQueue.init(label: "serialQueue")
serialQueue.async {
// code to execute
}
คิวพร้อมกัน
let concurrentQueue = DispatchQueue.init(label: "concurrentQueue", qos: .background, attributes: .concurrent, autoreleaseFrequency: .inherit, target: nil)
concurrentQueue.async {
// code to execute
}
จากเอกสารของ Apple :
พารามิเตอร์
ฉลาก
เลเบลสตริงที่จะแนบกับคิวเพื่อระบุเฉพาะในเครื่องมือดีบักเช่นเครื่องมือตัวอย่างสแต็กช็อตและรายงานข้อขัดข้อง เนื่องจากแอปพลิเคชันไลบรารีและกรอบงานทั้งหมดสามารถสร้างคิวการแจกจ่ายของตนเองได้จึงแนะนำให้ใช้รูปแบบการตั้งชื่อแบบย้อนกลับ DNS (com.example.myqueue) พารามิเตอร์นี้เป็นทางเลือกและสามารถเป็น NULL
QoS
ระดับคุณภาพการบริการที่จะเชื่อมโยงกับคิว ค่านี้กำหนดลำดับความสำคัญที่ระบบจัดตารางงานสำหรับการดำเนินการ สำหรับรายการของค่าที่เป็นไปได้ดู DispatchQoS.QoSClass
คุณลักษณะ
คุณลักษณะที่จะเชื่อมโยงกับคิว รวมแอ็ตทริบิวต์ที่เกิดขึ้นพร้อมกันเพื่อสร้างคิวการจัดส่งที่ดำเนินงานพร้อมกัน หากคุณไม่ใช้แอททริบิวต์นั้นคิวการจัดส่งจะดำเนินการงานตามลำดับ
autoreleaseFrequency
ความถี่ในการที่จะปล่อยวัตถุอัตโนมัติที่สร้างขึ้นโดยบล็อกที่จัดคิว สำหรับรายการของค่าเป็นไปได้ดูDispatchQueue.AutoreleaseFrequency
เป้า
คิวเป้าหมายที่จะดำเนินการบล็อก ระบุ DISPATCH_TARGET_QUEUE_DEFAULT หากคุณต้องการให้ระบบจัดคิวที่เหมาะสมสำหรับวัตถุปัจจุบัน