在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/iOS/ GCD Timer相比NSTimer有哪些優(yōu)勢?

GCD Timer相比NSTimer有哪些優(yōu)勢?

這些優(yōu)勢里面有沒有哪個(gè)是NSTimer不可能彌補(bǔ)的?

回答
編輯回答
六扇門
  • NSTimer 需要一個(gè)運(yùn)行的Runloop 來處理其定時(shí)任務(wù), MainThread是一直啟動并運(yùn)行的,所以在自定的線程如果使用NSTIme必須手動開啟并運(yùn)行子線程的Runloop
  • NSTimer 必須調(diào)用 invalidate 來停止其定時(shí)任務(wù),并且NSTimer 對其Target是強(qiáng)引用,要注意Target 與 - NSTimer間造成的循環(huán)引用造成的內(nèi)存泄漏(可以封裝成一個(gè)類方法來解決此問題)
  • NSTimer 的創(chuàng)建和 invalidate必須放在相同的線程中進(jìn)行
  • GCDTimer 是基于GCD實(shí)現(xiàn)的,使用的時(shí)候只要我們把任務(wù)提交給相應(yīng)隊(duì)列就好
  • GCDTimer 在使用時(shí)要注意 dispatch_resume(obj) dispatch_suspend(obj) -dispatch_source_cancel(obj)API 的使用
  • GCDTimer 在對文件資源定期進(jìn)行讀寫操作時(shí)很方便,其他與NSTimer使用場景差不多
2017年10月2日 22:34