You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在每秒触发的循环中利用现有参数每5秒调用MyFunc()?

实现每5秒调用MyFunc()的条件写法

现有代码通过ts变量实现每秒触发一次逻辑,要在最小改动的前提下,仅用给定的ts和std::chrono::system_clock::now()两个参数实现每5秒调用一次MyFunc(),可以用以下两种等价的条件写法:

写法1:基于当前时间戳判断

将condition替换为:

std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count() % 5 == 0

写法2:基于ts变量判断

也可以直接用已有的ts变量做判断,结果完全一致:

std::chrono::duration_cast<std::chrono::seconds>(ts.time_since_epoch()).count() % 5 == 0

原理说明

每次进入ts <= std::chrono::system_clock::now()的分支时,当前时间刚好是整秒节点(因为ts每次递增1秒)。通过将时间转换为从纪元开始的秒数并对5取模,当结果为0时,就说明当前时刻是5秒的整数倍,此时调用MyFunc()就能保证严格的5秒间隔。

这种写法完全复用现有参数,不需要新增任何变量或修改原有逻辑结构,满足最小改动的要求。

内容的提问来源于stack exchange,提问作者Putin_Caput

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 09:10:29