在Swift 2中,我能够用以下代码创建队列:
let concurrentQueue = dispatch_queue_create("com.swift3.imageQueue", DISPATCH_QUEUE_CONCURRENT)
但是这不能在Swift 3中编译。
在Swift 3中,首选的方式是什么?
在Swift 2中,我能够用以下代码创建队列:
let concurrentQueue = dispatch_queue_create("com.swift3.imageQueue", DISPATCH_QUEUE_CONCURRENT)
但是这不能在Swift 3中编译。
在Swift 3中,首选的方式是什么?
当前回答
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(execute: {
// write code
})
串行队列:
let serial = DispatchQueue(label: "Queuename")
serial.sync {
//Code Here
}
并发队列:
let concurrent = DispatchQueue(label: "Queuename", attributes: .concurrent)
concurrent.sync {
//Code Here
}
创建并发队列
let concurrentQueue = DispatchQueue(label: "queuename", attributes: .concurrent)
concurrentQueue.sync {
}
创建一个串行队列
let serialQueue = DispatchQueue(label: "queuename")
serialQueue.sync {
}
异步获取主队列
DispatchQueue.main.async {
}
同步获取主队列
DispatchQueue.main.sync {
}
获取一个背景线程
DispatchQueue.global(qos: .background).async {
}
Xcode 8.2 beta 2:
获取一个背景线程
DispatchQueue.global(qos: .default).async {
}
DispatchQueue.global().async {
// qos' default value is ´DispatchQoS.QoSClass.default`
}
如果你想了解如何使用这些队列。请看这个答案
Swift 3
DispatchQueue.main.async {
// Write your code here
}
let concurrentQueue = dispatch_queue_create("com.swift3.imageQueue", DISPATCH_QUEUE_CONCURRENT) //Swift 2 version
let concurrentQueue = DispatchQueue(label:"com.swift3.imageQueue", attributes: .concurrent) //Swift 3 version
我在Xcode 8, Swift 3中重做了你的代码,这些变化与你的Swift 2版本形成对比。
let newQueue = DispatchQueue(label: "newname")
newQueue.sync {
// your code
}