我写了一个没有足够速度运行的timercallback类。
class Manager
{
...
void CallFunction(Function<Treturn>* m_function)
{
do
{
if (m_Status == TimerStatus::Paused)
{
unique_lock<mutex> lock(m_MutexLock);
m_Notifier.wait(lock);
}
while (m_Status != TimerStatus::Stoped&&m_Status != TimerStatus::Paused)
{
unique_lock<mutex> lock(m_MutexLock);
m_Notifier.wait_for(lock, m_Interval);
(*m_function)();
}
} while (m_Status == TimerStatus::Paused);
}
...
}
但是当timercallback的设置时间每1ms调用一次时,不会调用并占用更多,例如10 ms。我需要帮助改进代码以在1毫秒内调用回调函数(此计时器的事件函数)并在一个带锁的线程中运行。我怎样才能做到这一点?使用此类的样本:
Manager tester;
TimerCallback<microseconds> m_timer(chrono::microseconds(10),Core::Utility::ptr_fun(&tester,&Manager::runner));