阅读背景:

异步执行任务的简单封装 -> Swift版

来源:互联网 
 

 

func async<T, N>(_ delta: Double, param: T, task: @escaping (_ value: T) -> N, callFunc: @escaping (_ result: N) -> ()) {
    func doTaskThenCallback() {
        let t = task(param)
        DispatchQueue.main.async(execute: {
            callFunc(t)
        })
    }

    if delta > 0.0 {
        DispatchQueue.global().asyncAfter(
            deadline: DispatchTime.now() + Double(Int64(delta * Double(NSEC_PER_SEC))) / Double(NSEC_PER_SEC)) {
                doTaskThenCallback()
        }
    } else {
        DispatchQueue.global().async {
            doTaskThenCallback()
        }
    }
}
func async<T, N>(_ delta: Do



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: