如何在Swift 3中创建具有QoS属性的dispatch_queue?

时间:2016-06-14 18:29:02

标签: swift grand-central-dispatch swift3

我在Swift 2中有这样的代码:

let attrs = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_SERIAL, QOS_CLASS_UTILITY, 0)
let myQueue = dispatch_queue_create("com.example.serial-queue", attrs)

这不会在Swift 3中编译,因为dispatch_queue_attr_make_with_qos_classdispatch_queue_create不可用。如何使用自定义QoS类创建串行队列?

1 个答案:

答案 0 :(得分:7)

DispatchQueue现在是class,您可以使用其init(label:attributes:target:)初始值设定项。这些属性现在是名为DispatchQueueAttributes的OptionSet,其实例为.serial.qosUtility

把它放在一起:

let myQueue = DispatchQueue(label: "com.example.serial-queue",
                            attributes: [.serial, .qosUtility])