//swift gcd寫了一個300s 的倒計時
func startTime() {
var timeCount = 300
//創建全局隊列
let queue = DispatchQueue.global(qos: .default)
//在全局隊裏創建一個時間源
let timer = DispatchSource.makeTimerSource(flags:[], queue: queue)
//設定時間間隔是一秒,並且立即開始
timer.scheduleRepeating(wallDeadline: DispatchWallTime.now(), interval: DispatchTimeInterval.seconds(1))
//時間源立刻發出事件
timer.setEventHandler {
if timeCount <= 0 {
timer.cancel()
DispatchQueue.main.async(execute: {
//更新ui邏輯
print("resent")
})
}else {
DispatchQueue.main.async(execute: {
//更新ui邏輯
print("\(timeCount)s")
})
timeCount -= 1
}
}
timer.resume()
}