swift中GCD定時(shí)器的使用和原理

GCD中Dispatch_Source中的DispatchSourceTimer類(lèi)型可以實(shí)現(xiàn)定時(shí)器功能

優(yōu)勢(shì):不需加入runLoop執(zhí)行,因此子線程也可使用

執(zhí)行流程: 當(dāng)配置一個(gè)dispatch時(shí),需要指定監(jiān)測(cè)的事件、dispatchqueue、以及處理事件的block或函數(shù)。當(dāng)事件發(fā)生時(shí),dispatch source會(huì)提交你的block或函數(shù)到指定的queue去執(zhí)行。

使用注意點(diǎn):

切記在dispatch_suspend狀態(tài)下不能直接釋放timer,否則會(huì)發(fā)生崩潰

解決方法:直接調(diào)用cancle()再釋放,或判斷調(diào)用了dispatch_suspend后先調(diào)用resume()再釋放

以下是實(shí)現(xiàn)倒計(jì)時(shí)的示例:

倒計(jì)時(shí)

以下是延時(shí)一次的示例:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容