Swift5多线程系列一GCD异步/延时使用初步封装
GCD异步延时使用初步目录
前言
上一篇介绍了GCD的基本概率,这篇主要基本实战,初步封装。
一、封装成基本的struct
Tip: 可以新建一个AsyncStuct.swift,直接当做工具类使用
import Foundation
public typealias Task = () -> Void
struct AsyncStuct {
/// async 追加异步任务
/// - Parameter task: 异步任务逃逸闭包
public static func async(_ task: @escaping Task) {
_async(task)
}
/// async 追加异步任务,并执行回到主线程任务
/// - Parameters:
/// - task: 异步任务逃逸闭包
/// - mainTask: 主线线程逃逸任务
public static func async(_ task: @escaping Task,
_ mainTask: @escaping Task){
_async(task, mainTask)
}
/// _async 追加异步任务,并执行回到主线程任务具体实现
/// - Parameters:
/// - task: 异步任务逃逸闭包
/// - mainTask: 回到主线任务闭包
private static func _async(_ task: @escaping Task,
_ mainTa