如何快速使用后台线程? [英] How to use background thread in swift?
本文介绍了如何快速使用后台线程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何快速使用线程?
dispatchOnMainThread:^{
NSLog(@"Block Executed On %s", dispatch_queue_get_label(dispatch_get_current_queue()));
}];
推荐答案
Swift 3.0+
很多已经现代化 在 Swift 3.0 中.在后台队列上运行一些东西看起来像这样:
Swift 3.0+
A lot has been modernized in Swift 3.0. Running something on a background queue looks like this:
DispatchQueue.global(qos: .userInitiated).async {
print("This is run on a background queue")
DispatchQueue.main.async {
print("This is run on the main queue, after the previous code in outer block")
}
}
Swift 1.2 到 2.3
let qualityOfServiceClass = QOS_CLASS_USER_INITIATED
let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
dispatch_async(backgroundQueue, {
print("This is run on a background queue")
dispatch_async(dispatch_get_main_queue(), { () -> Void in
print("This is run on the main queue, after the previous code in outer block")
})
})
Swift 1.2 之前的版本 – 已知问题
从 Swift 1.1 开始,Apple 不进行一些修改就不再支持上述语法.传递 QOS_CLASS_USER_INITIATED
实际上没有用,而是使用 Int(QOS_CLASS_USER_INITIATED.value)
.
Pre Swift 1.2 – Known issue
As of Swift 1.1 Apple didn't support the above syntax without some modifications. Passing QOS_CLASS_USER_INITIATED
didn't actually work, instead use Int(QOS_CLASS_USER_INITIATED.value)
.
有关详细信息,请参阅 Apple 文档一个>
For more information see Apples documentation
这篇关于如何快速使用后台线程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文