请帮我这条线转换为SWIFT 3.0:队列和斯威夫特3问题
dispatch_async(DispatchQueue.global(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0))
又是什么恰恰意味着?像这样:在主队列中的括号内执行代码?
在此先感谢。
ps。这行代码是从apple's code采取核心数据进行工作
请帮我这条线转换为SWIFT 3.0:队列和斯威夫特3问题
dispatch_async(DispatchQueue.global(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0))
又是什么恰恰意味着?像这样:在主队列中的括号内执行代码?
在此先感谢。
ps。这行代码是从apple's code采取核心数据进行工作
在斯威夫特3你可以像这样
DispatchQueue.global(qos: .background).async {
}
写它的意思是每个支架之间写的代码将在后台执行。如果你想在这个后台线程中做任何修改,你必须切换到主线程。通过编写下面的块。
dispatch_async(dispatch_get_main_queue()) {
// Your code for UI Changes.
}
编辑:斯威夫特3
DispatchQueue.main.async {
}
一个在大中央调度(GDC)模式中最常见的任务是在全球背景队列执行的工作,并尽快更新主队列中的用户界面因为工作已经完成。新的API看起来像这样:
DispatchQueue.global(attributes: [.qosDefault]).async {
// Background thread
DispatchQueue.main.async(execute: {
// UI Updates
})
}
队列现在在init上获取属性。这是一个Swift optionSet,可以包含队列选项,例如串行vs并发,内存和活动管理选项以及服务质量(.default,.userInteractive,.userInitiated,.utility和.background)。
新变化:
如果你想了解更多,这是一个很好的谈话https://developer.apple.com/videos/play/wwdc2016/720/
感谢您的帮助! –
'DispatchQueue.main.async {}'或'DispatchQueue.main.sync {}'。对于主队列。 – Zico
'dispatch_async(DispatchQueue.global(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0))''0'怎么办?我如何设置'0' – 2016-10-19 06:08:41