Swift3 全局与用户队列
我想让一个UI按钮按下触发一个代码块,所以我创建了一个队列并异步向它发送了一个块,但我没有看到该块在合理的时间内启动 最小化示例:Swift3 全局与用户队列,swift3,grand-central-dispatch,Swift3,Grand Central Dispatch,我想让一个UI按钮按下触发一个代码块,所以我创建了一个队列并异步向它发送了一个块,但我没有看到该块在合理的时间内启动 最小化示例: class InterfaceController: WKInterfaceController { ... let queue = DispatchQueue(label: "unique_label", qos: .userInteractive) @IBAction func on_press() { print("T
class InterfaceController: WKInterfaceController {
...
let queue = DispatchQueue(label: "unique_label", qos: .userInteractive)
@IBAction func on_press() {
print("Touch")
queue.async {
// Stuff
}
}
}
因此,我在控制台中看到了“Touch”行,但异步块中没有任何内容发生
奇怪的是,如果我使用let queue=DispatchQueue.global()
,它似乎可以按预期工作。那么,创建自己的队列和在这里使用全局队列在操作上有什么区别呢?我希望我的QoS能给它一些CPU时间
那么,创建自己的队列和
在这里使用全局的吗
创建具有高优先级的.serial队列
let queue = DispatchQueue.global()
实际上不创建任何内容,但返回具有qos的全局(系统).concurrent queue。默认值
当您创建自己的队列时,系统将决定在哪个全局队列上发送您的执行请求。队列不是执行引擎
我无法相信,您的代码从未执行过,这不太可能是真的。如果它发生了,那么问题一定在代码中的某个地方,而这不是问题的一部分
let queue = DispatchQueue.global()