我正在使用调度源计时器。
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 。之后,计时器会在每个时间间隔触发。 我的问题是如何禁用第一火?
dispatch_source_set_timer
的第二个参数是定时器第一次触发的时间。您将其设置为 dispatch_walltime(NULL, 0)
,即“现在”。
要让它在某个时间间隔后第一次触发,请改为传递 dispatch_walltime(NULL, interval)
。
关于ios - 如何禁用调度源计时器的第一次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44110288/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) | Powered by Discuz! X3.4 |