#include <condition_variable>
std::condition_variable m_execCond;
std::mutex m_execMutex;
void execThreadFnc()
{
while(true)
{
std::unique_lock < std::mutex > lck(this->m_execMutex);
while (this->m_isExecuted == 1)
{
this->m_execCond.wait(lck);
}
RunFunc();
this->m_isExecuted = 1;
}
}
this->m_executeTimer = commonNh.createSteadyTimer(ros::WallDuration(0.01f) ,[this](const ros::SteadyTimerEvent& e){
if(this->m_isExecuted == 1)
{
this->m_isExecuted = 0;
this->m_execCond.notify_all();
}
}
定时执行函数执行体
最新推荐文章于 2024-08-30 19:06:26 发布