如何在 Swift 中创建带有名称的后台优先级串行队列?
How to create a background priority SERIAL queue WITH A NAME, in Swift?
好的,我可以像这样创建一个全局串行后台队列
DispatchQueue.global(qos: .background).async {
}
但我希望我的队列有一个名称。所以我尝试了 Apple 推荐的这段代码(哈!):
let queueAttributes = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_PRIORITY_BACKGROUND, QOS_CLASS_BACKGROUND, 0)
let videoQueue = dispatch_queue_create("videoQueue", queueAttributes);
正如预期的那样,指向 DISPATCH_QUEUE_PRIORITY_BACKGROUND
失败并出现此错误
Cannot convert value of type 'Int' to expected argument type '__OS_dispatch_queue_attr?'
显然点击错误或搜索网络没有任何线索,自动完成也没有提供任何关于应该放在那里的线索。
有什么想法吗?
您可以使用:
DispatchQueue(label: "name.of.your.queue")
或
let processingQueue = DispatchQueue(label: "your.queue", qos: .background,
attributes: [],
autoreleaseFrequency: .inherit,
target: nil)
注意DispatchQueue.Attributes
是一个OptionSet,可以传空[],也可以组合几个值在上面
好的,我可以像这样创建一个全局串行后台队列
DispatchQueue.global(qos: .background).async {
}
但我希望我的队列有一个名称。所以我尝试了 Apple 推荐的这段代码(哈!):
let queueAttributes = dispatch_queue_attr_make_with_qos_class(DISPATCH_QUEUE_PRIORITY_BACKGROUND, QOS_CLASS_BACKGROUND, 0)
let videoQueue = dispatch_queue_create("videoQueue", queueAttributes);
正如预期的那样,指向 DISPATCH_QUEUE_PRIORITY_BACKGROUND
失败并出现此错误
Cannot convert value of type 'Int' to expected argument type '__OS_dispatch_queue_attr?'
显然点击错误或搜索网络没有任何线索,自动完成也没有提供任何关于应该放在那里的线索。
有什么想法吗?
您可以使用:
DispatchQueue(label: "name.of.your.queue")
或
let processingQueue = DispatchQueue(label: "your.queue", qos: .background,
attributes: [],
autoreleaseFrequency: .inherit,
target: nil)
注意DispatchQueue.Attributes
是一个OptionSet,可以传空[],也可以组合几个值在上面