我正在使用调度源计时器。
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
dispatch_source_set_timer(timer, dispatch_walltime(NULL, 0), interval, leeway);
dispatch_source_set_event_handler(timer, block);
dispatch_resume(timer);
但是,我发现在上面的代码运行之后几乎立即调用了该 block 。之后,计时器会在每个时间间隔触发。
我的问题是如何禁用第一火?
Best Answer-推荐答案 strong>
dispatch_source_set_timer 的第二个参数是定时器第一次触发的时间。您将其设置为 dispatch_walltime(NULL, 0) ,即“现在”。
要让它在某个时间间隔后第一次触发,请改为传递 dispatch_walltime(NULL, interval) 。
关于ios - 如何禁用调度源计时器的第一次触发,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/44110288/
|