国产探花免费观看_亚洲丰满少妇自慰呻吟_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]; }); 此方式在可以在參數中選擇執行的線程。 是一種非阻塞的執行方式, 沒有找到取消執行的方法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富平县| 汝阳县| 丹巴县| 云浮市| 屏南县| 五莲县| 乃东县| 福安市| 岳阳县| 台江县| 治多县| 江城| 伊吾县| 阿克陶县| 巴东县| 麻江县| 株洲市| 大田县| 南投市| 甘孜县| 东城区| 六枝特区| 梁山县| 平凉市| 建宁县| 新泰市| 霍山县| 刚察县| 高雄市| 永宁县| 福建省| 奎屯市| 濉溪县| 剑河县| 安龙县| 莱阳市| 桐柏县| 漠河县| 宾川县| 房山区| 建宁县|