iosswift3xcode8grand-central-dispatchdispatch-after

How to create dispatch queue in Swift 3


In Swift 2, I was able to create queue with the following code:

let concurrentQueue = dispatch_queue_create("com.swift3.imageQueue", DISPATCH_QUEUE_CONCURRENT)

But this doesn't compile in Swift 3.

What is the preferred way to write this in Swift 3?


Solution

  • Creating a concurrent queue

    let concurrentQueue = DispatchQueue(label: "queuename", attributes: .concurrent)
    concurrentQueue.sync {
    
    }  
    

    Create a serial queue

    let serialQueue = DispatchQueue(label: "queuename")
    serialQueue.sync { 
    
    }
    

    Get main queue asynchronously

    DispatchQueue.main.async {
    
    }
    

    Get main queue synchronously

    DispatchQueue.main.sync {
    
    }
    

    To get one of the background thread

    DispatchQueue.global(qos: .background).async {
    
    }
    

    Xcode 8.2 beta 2:

    To get one of the background thread

    DispatchQueue.global(qos: .default).async {
    
    }
    
    DispatchQueue.global().async {
        // qos' default value is ´DispatchQoS.QoSClass.default`
    }
    

    If you want to learn about using these queues .See this answer