我写了一个运行速度不够快的 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));