菜鸟教程小白 发表于 2022-12-11 19:42:50

ios - 如何禁用调度源计时器的第一次触发


                                            <p><p>我正在使用调度源计时器。 </p>

<pre><code>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);
</code></pre>

<p>但是,我发现在上面的代码运行之后几乎立即调用了该 block 。之后,计时器会在每个时间间隔触发。
我的问题是如何禁用第一火?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>dispatch_source_set_timer</code> 的第二个参数是定时器第一次触发的时间。您将其设置为 <code>dispatch_walltime(NULL, 0)</code>,即“现在”。</p>

<p>要让它在某个时间间隔后第一次触发,请改为传递 <code>dispatch_walltime(NULL, interval)</code>。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何禁用调度源计时器的第一次触发,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/44110288/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/44110288/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何禁用调度源计时器的第一次触发