GCD中Dispatch_Source中的DispatchSourceTimer类型可以实现定时器功能
优势:不需加入runLoop执行,因此子线程也可使用
执行流程: 当配置一个dispatch时,需要指定监测的事件、dispatchqueue、以及处理事件的block或函数。当事件发生时,dispatch source会提交你的block或函数到指定的queue去执行。
使用注意点:
切记在dispatch_suspend状态下不能直接释放timer,否则会发生崩溃
解决方法:直接调用cancle()再释放,或判断调用了dispatch_suspend后先调用resume()再释放
以下是实现倒计时的示例:
以下是延时一次的示例: