void dispatch_source_set_timer(dispatch_source_t source, dispatch_time_t start, uint64_t interval, uint64_t leeway);
此函數(shù)用來為timer source設(shè)置開始時間续滋、間隔和容許值。
如果需要的話,你可以對同一個timer source對象多次調(diào)用本函數(shù)钞馁,以此來重置它的時間間隔。
參數(shù)start決定了timer使用的時鐘匿刮。如果start time是DISPATCH_TIME_NOW或者以dispatch_time初始化的僧凰,則timer使用mach_absolute_time為基礎(chǔ)。否則熟丸,如果start time是使用dispatch_walltime創(chuàng)建的训措,則timer使用gettimeofday(3)為基礎(chǔ)。
參數(shù)leeway是一個微小的時間量光羞,單位是納秒绩鸣,系統(tǒng)為了改進(jìn)性能和介紹耗電,會根據(jù)這個時間來推遲timer的執(zhí)行以與其它系統(tǒng)活動同步纱兑。比如呀闻,一個程序可能執(zhí)行一個5分鐘為間隔的周期性任務(wù),這個任務(wù)有30秒的容許值潜慎。要注意捡多,所有timer都需要考慮一些潛在因素蓖康,哪怕leeway這個容許值被指定為0。
調(diào)用這個函數(shù)沒有任何效果垒手,如果timer source已經(jīng)被取消蒜焊。