import Dispatch
extension DispatchQueue {
private static var token: DispatchSpecificKey<()> = {
let key = DispatchSpecificKey<()>()
DispatchQueue.main.setSpecific(key: key, value: ())
return key
}()
static var isMain: Bool {
return DispatchQueue.getSpecific(key: token) != nil
}
}
setSpecific:就是向指定队列里面设置一个标识 .
getSpecific:就是在当前队列中取出标识.
其中键为DispatchSpecificKey
,并且添加缺少的key:
标签