美文网首页
dispatch_source_t計時器小記

dispatch_source_t計時器小記

作者: VervertomJC | 来源:发表于2020-04-03 11:47 被阅读0次

查看FBKVOController時,看到 dispatch_source_t 創建的定時器,然後就網路上查閱資料了解了一下,大致步驟是:
1.創建調度源 dispatch_source_create(dispatch_source_type_t type, uintptr_t handle, unsigned long mask, dispatch_queue_t _Nullable queue);

  1. 設置計時器 dispatch_source_set_timer(dispatch_source_t source, dispatch_time_t start, uint64_t interval, uint64_t leeway);

3.設置給調度源 事件處理程序塊 dispatch_source_set_event_handler(dispatch_source_t source, dispatch_block_t _Nullable handler);
4.恢復啟用 dispatch_resume(dispatch_object_t object);

5.設置掛起計時器或者 取消調度源dispatch_source_cancel(dispatch_source_t source); or dispatch_suspend(dispatch_object_t object);

注意:suspend狀態如果將計時器置為nil將會報錯,suspend後需要resume後方可 置為nil, 或者直接cancel,再將計時器置為nil

下方為示例代碼:

    dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
    _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
    dispatch_source_set_timer(_timer, dispatch_time(DISPATCH_TIME_NOW, 0 *NSEC_PER_SEC), 1.0 * NSEC_PER_SEC, 0);
    __block NSInteger i = 0;
    __weak typeof(self) weakSelf = self;
    dispatch_source_set_event_handler(_timer, ^{
        i ++;
        NSLog(@"次數 : %ld", (long)i);
        if (i == 10) {
            [weakSelf cancel];
        }
    });
    
    dispatch_resume(_timer);
}

- (void)cancel {
    dispatch_source_cancel(_timer);
    _timer = nil;
    NSLog(@"計時器銷毀");
}

以上是個人學習記錄,如果錯誤還請指正,謝謝。

相关文章

  • dispatch_source_t計時器小記

    查看FBKVOController時,看到 dispatch_source_t 創建的定時器,然後就網路上查閱資料...

  • 俳句(三)

    心砂行无所, 砂時計記憶時間, 命運無法掌。

  • 【文魁大脑实用记忆第六期】如意派羅子毅第水4次案例

    2用地點法,記憶40個為一組的數字記憶二組 ,和計時 4. 5 記憶locatiom 和 item code lo...

  • 學習計劃

    時間 工作時間:工作 設計 前端 練習 上班下班零碎時間:語言 聽歌 繪畫 音樂 理論 記憶宮殿 起床之後上班之前...

  • 2022返台之旅

    記錄驚心動魄的返台旅程 原預計從廈門返回,但由於多人反饋班機被延誤4~5小時或臨時取消,因此最後決定從澳門離開,但...

  • 《要搞定,不要完美》读书笔记

    1.就算計劃開始時,沒像定計劃時那麼完美,有點小磕小碰,但如果堅持下來,也影響不大。 2.很多時候,做事情不是為了...

  • 第一次使用簡書——寫在考試周後

    人的記憶根據記憶停留的時間長短可分為感覺記憶、短時記憶和長時記憶。 在很多時候,我也像魚一樣,只有七秒記憶。想記錄...

  • 致高考

    (写于20180607高考当天) #高考#倒計時0天~ 高考已结束 7年! 似乎是很久遠的記憶了,高考;早上幾個被...

  • 砂時計

    每一粒砂里都写满了故事 每一个夜都是冗长沉郁的诗 在雪花里,积陈着岁月的倒计时 地上的车辙 絮絮叨叨说要一路向西 ...

  • 倒計時

    2020就這樣快過完了。雖然有時我還是會有一種,一回頭不知自己做了些什麼的錯覺。但又有好些想做的事,要在來臨這週做...

网友评论

      本文标题:dispatch_source_t計時器小記

      本文链接:https://www.haomeiwen.com/subject/dkthphtx.html