有没有办法在特定线程上调度某个类的每个方法? 我想在后台线程上异步运行某个类的每个方法而不添加
DispatchQueue.global(qos: .background).async {
// code
}
到每个方法。我应该覆盖哪种NSObject
方法?
答案 0 :(得分:2)
这听起来没必要(也许是一个坏主意)。如果它是可能的(它可能不是)它意味着每个方法都需要一个完成块才能返回任何东西,甚至私有函数。
更好的方法是将大多数方法设为私有,并将一些公共方法作为向量调用异步的类。
如果你想避免所有的语法,你可以这样做:
let BA = { (block: @escaping () -> ()) in
DispatchQueue.global(qos: .background).async(execute: block)
}
BA {
// do whatever
}
如果你想为你可以做的整个功能做到这一点:
func doSomething() { BA {
}}