Gcd - linhay/Stem GitHub Wiki
Gcd
public class Gcd
Methods
synchronzed(_:closure:)
原子锁
public func synchronzed(_ lock: Any, closure: () -> Void)
Parameters
- lock: - lock: 被锁元素
- closure: - closure: 闭包
delay(_:event:)
主线程异步延时
public class func delay(_ time: Double, event: @escaping () -> Void)
Parameters
- time: - time: 时间 (秒)
- event: - event: 延时事件
delay(label:seconds:event:)
子线程线程异步延时
public class func delay(label: String, seconds: TimeInterval, event: @escaping () -> Void)
Parameters
- label: - label: 标识
- time: - time: 时间 (秒)
- event: - event: 延时事件
duration(_:)
耗时(秒)
public class func duration(_ closure: () -> Void) -> TimeInterval
Parameters
- block: - block: 需要测试执行的代码
group(asyncs:notify:)
异步线程组
public class func group(asyncs: (() -> Void), notify: @escaping () -> Void)
Parameters
- asyncs: - asyncs: 异步线程组
- notify: - notify: 全部完成回调
`repeat`(interval:event:completion:)
定时
@discardableResult public class func `repeat`(interval: TimeInterval, event: @escaping ((_: DispatchSourceTimer) -> Void), completion: (() -> Void)? = nil) -> DispatchSourceTimer
Parameters
- interval: - interval: 间隔(s)
- event: - event: 定时事件
- completion: - completion: 完成回调
Returns
DispatchSourceTimer
`repeat`(interval:keep:event:completion:)
定时
@discardableResult public class func `repeat`(interval: TimeInterval, keep: TimeInterval, event: @escaping (_: DispatchSourceTimer) -> Void, completion: (() -> Void)? = nil) -> DispatchSourceTimer
Parameters
- interval: - interval: 间隔(s)
- keep: - keep: 持续时间, 小于 0 则会一直执行
- event: - event: 定时事件
- completion: - completion: 完成回调
Returns
DispatchSourceTimer
`repeat`(interval:keep:leeway:event:completion:)
定时
@discardableResult public class func `repeat`(interval: TimeInterval, keep: TimeInterval, leeway: Double = 0.1, event: @escaping ((_: DispatchSourceTimer) -> Void), completion: (() -> Void)? = nil) -> DispatchSourceTimer
Parameters
- interval: - interval: 间隔(s)
- keep: - keep: 持续时间, 小于 0 则会一直执行
- leeway: - leeway: 精度, 默认 0.1
- event: - event: 定时事件
- completion: - completion: 完成回调
Returns
DispatchSourceTimer