@property (nonatomic, strong) dispatch_source_t Timer;
// 加載完成里面創(chuàng)建
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"充電中";
//每隔30秒請求一次數據
[self RefreshData];
}
// 銷毀定時器
- (void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
// 取消定時器
if (self.Timer) {
dispatch_cancel(self.Timer);
self.Timer = nil;
}
}
- (void)RefreshData
{
// 獲得隊列
dispatch_queue_t queue = dispatch_get_main_queue();
// 創(chuàng)建一個定時器(dispatch_source_t本質還是個OC對象)
self.Timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
// 設置定時器的各種屬性(幾時開始任務,每隔多長時間執(zhí)行一次)
// GCD的時間參數,一般是納秒(1秒 == 10的9次方納秒)
// 何時開始執(zhí)行第一個任務
// dispatch_time(DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC) 比當前時間晚1秒
dispatch_time_t start = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(30.0 * NSEC_PER_SEC));
uint64_t interval = (uint64_t)(30.0 * NSEC_PER_SEC);// 間嗝30秒
dispatch_source_set_timer(self.Timer, start, interval, 0);
// 設置回調
dispatch_source_set_event_handler(self.Timer, ^{
[self queryListOfChargingInformationChargeSeq:self.chargeSeq];
});
// 啟動定時器
dispatch_resume(self.Timer);
}
GCD 定時器 時隔多長時間 執(zhí)行一次任務
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內容
- 所以我就給了他一個機會,他的那種眼神,我做學生的時候也是有過的,渴望老師,單獨的挑出來,但是又怕自己念的不好,所以...
- 一.延時執(zhí)行的幾種方式 最近發(fā)現掃描寶挺好用,將手寫的幾種延時方式發(fā)出來分享一下: 二.GCD寫的定時器 - (v...