dispatch_async經常應用于我們日常開發(fā)中,一提到dispatch_async我們想到的是多線程或者異步執(zhí)行,但這個小技巧并不是和多線程或者異步執(zhí)行相關的灌旧。
你有沒有在開發(fā)中遇到這種情況:你需要執(zhí)行一段代碼,但是代碼執(zhí)行的所需要的數據或者環(huán)境沒有達到要求,只能在當前數據配置完成后再執(zhí)行吃媒。這個時候我們通常的做法是:
//[self doSomething]; 需要執(zhí)行的代碼 [self performSelector:@selector(doSomething) withObject:nil afterDelay:0.1f];
這個方法是在0.1秒后執(zhí)行,一般情況下設置充足的時間,來滿足數據加載和環(huán)境配置的完成在代碼運行方面來說是可行的赘那。但是在某些代碼強迫癥人眼里刑桑,設置的延遲時間你怎么就能保證環(huán)境配置就一定能達到。
巧妙的利用dispatch_async函數就能達到完美的效果:
dispatch_async(dispatch_get_main_queue(),^{ [self doSomething]; });
前提條件是[self doSomething]必須是需要在主線程執(zhí)行的代碼募舟,有人或許會問祠斧,本來[self doSomething]就是在主線程執(zhí)行,為什么還要加這個函數呢拱礁,這是里用GCD隊列的一個特性琢锋,主線程的任務隊列,會依次執(zhí)行呢灶,執(zhí)行完這一個再去執(zhí)行下一個吴超。利用這個特點就可以避免上面設置延遲執(zhí)行所帶來的不確定性。
GCD函數dispatch_async的小妙用
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
- 文/潘曉璐 我一進店門拾并,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揍堰,“玉大人鹏浅,你說我怎么就攤上這事嗅义。” “怎么了隐砸?”我有些...
- 正文 為了忘掉前任式塌,我火速辦了婚禮博敬,結果婚禮上,老公的妹妹穿的比我還像新娘峰尝。我一直安慰自己偏窝,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著祭往,像睡著了一般伦意。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上硼补,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼乱豆!你這毒婦竟也來了奖恰?” 一聲冷哼從身側響起,我...
- 正文 年R本政府宣布识颊,位于F島的核電站,受9級特大地震影響奕坟,放射性物質發(fā)生泄漏祥款。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一月杉、第九天 我趴在偏房一處隱蔽的房頂上張望刃跛。 院中可真熱鬧,春花似錦苛萎、人聲如沸桨昙。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽绊率。三九已至谨敛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滤否,已是汗流浹背脸狸。 一陣腳步聲響...
推薦閱讀更多精彩內容
- iOS多線程的方法有3種: NSThread NSOperation GCD(Grand Central Disp...
- 本篇博客共分以下幾個模塊來介紹GCD的相關內容: 多線程相關概念 多線程編程技術的優(yōu)缺點比較? GCD中的三種隊列...
- 原文:http://www.cocoachina.com/ios/20170707/19769.html 本文主要...
- App運營:做應用市場,玩法太多市怎;做整合營銷岁忘,預算有限;做地推下載焰轻,又缺少可執(zhí)行的團隊臭觉; 太多難題需要思考昆雀,運營小...