国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

歡迎使用CSDN-markdown編輯器

2019-11-09 18:45:33
字體:
來源:轉載
供稿:網友

本文轉載自http://blog.csdn.net/chenyong05314/article/details/24695897

本文列舉了四種延時執行某函數的方法及其一些區別。假如延時1秒時間執行下面的方法。

- (void)delayMethod { NSLog(@"execute"); }

performSelector方法[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f]; 此方式要求必須在主線程中執行,否則無效。 是一種非阻塞的執行方式, 暫時未找到取消執行的方法。

定時器:NSTimer [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO]; 此方式要求必須在主線程中執行,否則無效。 是一種非阻塞的執行方式, 可以通過NSTimer類的- (void)invalidate;取消執行。

sleep方式 [NSThread sleepForTimeInterval:1.0f]; [self delayMethod]; 此方式在主線程和子線程中均可執行。 是一種阻塞的執行方式,建方放到子線程中,以免卡住界面 沒有找到取消執行的方法。

GCD方式 double delayInSeconds = 1.0; __block ViewController* bself = self; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ [bself delayMethod]; }); 此方式在可以在參數中選擇執行的線程。 是一種非阻塞的執行方式, 沒有找到取消執行的方法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武川县| 昭平县| 镇雄县| 乌兰察布市| 新乡县| 常州市| 河间市| 太白县| 台东县| 昌图县| 额敏县| 贵溪市| 玉溪市| 榆社县| 偃师市| 黄石市| 上栗县| 二连浩特市| 修武县| 临洮县| 久治县| 仲巴县| 奉节县| 松滋市| 民丰县| 车险| 唐河县| 湘潭县| 宁津县| 木里| 通辽市| 封丘县| 志丹县| 石柱| 天等县| 茌平县| 嵩明县| 乳山市| 桑植县| 黄冈市| 平南县|