0

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

0 回答 0