在Swift 2中,我能够用以下代码创建队列:

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

但是这不能在Swift 3中编译。

在Swift 3中,首选的方式是什么?


当前回答

我这样做了,如果你想在不被用户注意的情况下刷新你的UI来显示新数据,比如UITableView或UIPickerView,这就特别重要。

    DispatchQueue.main.async
 {
   /*Write your thread code here*/
 }

其他回答

现在很简单:

let serialQueue = DispatchQueue(label: "my serial queue")

默认值是serial,要获得concurrent,可以使用可选属性参数.concurrent

DispatchQueue.main.async(execute: {

// write code

})

串行队列:

let serial = DispatchQueue(label: "Queuename")

serial.sync { 

 //Code Here

}

并发队列:

 let concurrent = DispatchQueue(label: "Queuename", attributes: .concurrent)

concurrent.sync {

 //Code Here
}
 DispatchQueue.main.async {
          self.collectionView?.reloadData() // Depends if you were populating a collection view or table view
    }


OperationQueue.main.addOperation {
    self.lblGenre.text = self.movGenre
}

//使用操作队列如果你需要填充对象(标签,imageview, textview)在你的视图控制器

Swift 3

   DispatchQueue.main.async {
        // Write your code here
    }
DispatchQueue.main.async(execute: {
   // code
})