【发布时间】:2025-12-21 10:25:11
【问题描述】:
我的应用程序中有一个Update 函数,它每秒被调用一次。我想做一个语句检查,如果在该更新函数中只执行一次该函数是真的。如果语句为假则重置std::call_once
void Update()
{
if (cond)
std::call_once(flag1, [&capture](){ MyFunction(capture.arg); });
else
//Some codes to reset call once
}
我怎样才能重置一次通话?
【问题讨论】:
-
显而易见的解决方案(互斥锁和
bool标志替换 once/once_flag 方法)到底对你不起作用? -
您使用了错误的工具来完成这项工作。
std::call_once是一个专门用于特定目的的函数(在应用程序执行期间初始化首次使用的东西)
标签: c++ std-call-once