日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GCD之after

發(fā)布時間:2023/12/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GCD之after 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

先介紹下C中的modf函數(shù)

函數(shù)名:modf 頭文件:<math.h> 函數(shù)原型:double modf(double x, double *ipart) 函數(shù)用途:分解x,以得到x的整數(shù)和小數(shù)部分 輸入?yún)?shù):x 待分解的數(shù)輸出參數(shù):ipath x 的整數(shù)部分 返回值:x 的小數(shù)部分

多線程開發(fā)中,可能會有等待一段時間后再運(yùn)行的情況,此時就用到了dispatch_after函數(shù),調(diào)用該函數(shù)時第一個參數(shù)用的dispatch_time_t類型的值。該值使用dispatch_time函數(shù)或者dispatch_walltime函數(shù)完成。

1.dispatch_time函數(shù)能夠獲取從第一個參數(shù)dispatch_tiem_t類型值指定的時間開始,到第二個參數(shù)指定的毫秒單位時間后的時間。第一個參數(shù)經(jīng)常使用的值是之前源代碼出現(xiàn)的DISPATCH_TIME_NOW,表示現(xiàn)在的時間。第二個參數(shù)是等待時間。該方法主要計算相對時間。

//#define NSEC_PER_SEC 1000000000ull 1秒//#define NSEC_PER_MSEC 1000000ull 1毫秒//#define USEC_PER_SEC 1000000ull 1毫秒//#define NSEC_PER_USEC 1000ull 1納秒//ull 1皮秒 1毫微秒

?2.dispatch_walltime函數(shù)主要用于計算絕對時間。例如在dispatch_after函數(shù)想指定2015年03月27日11時11分11秒的這一絕對時間的情況,這可作為粗略的鬧鐘功能使用。在dispatch_walltime函數(shù)中要一個struct timespec類型的時間,該時間可以通過NSDate類對象完成。

NSTimeInterval interval;double second,subsecond;struct timespec time;dispatch_time_t milestone;interval=[date timeIntervalSince1970];NSLog(@"%f",interval);subsecond=modf(interval, &second);NSLog(@"%f",second);NSLog(@"%f",subsecond);time.tv_sec=second;time.tv_nsec=subsecond*NSEC_PER_SEC;milestone=dispatch_walltime(&time, 0);NSLog(@"%llu",milestone);return milestone;

?3.運(yùn)行該方法的結(jié)果如下圖(主要是查看modf方法)

?4.學(xué)習(xí)完dispatch_time_t,下面再學(xué)習(xí)dispatch_after.

dispatch_after函數(shù)并不是在指定的時間后執(zhí)行處理,而只是在指定的時間追加處理到Dispatch Queue。

NSDate *startDate=[NSDate date];NSLog(@"%@",startDate);dispatch_time_t time=dispatch_time(DISPATCH_TIME_NOW, 30*NSEC_PER_SEC);dispatch_after(time, dispatch_get_main_queue(), ^{NSLog(@"test");NSDate *endDate=[NSDate date];NSLog(@"%@",endDate);});NSDate *endDate=[NSDate date];NSLog(@"%@",endDate);

?5.運(yùn)行結(jié)果

總結(jié)

以上是生活随笔為你收集整理的GCD之after的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。