官方文档介绍
一个简单的Timer类。
定时器用于将延迟保持在一起,延迟到期时调用的函数以及延迟到期时传递给函数的一组参数。
定时器可以暂停,恢复,取消并查询剩余时间,但不能扩展(除了暂停和恢复)。
也可以使用定时器来执行一组预定义的事件生命周期管理策略。 这些政策在构造时规定,以后不能改变。
Timer类似于Simulator::Schedule完成的功能,并且,Timer的本质也是使用的就是Simulator::Schedule,只不过Timer对它做了一层封装,使用起来更加方便、明了。但是如果说代码简洁的角度来说的话,Simulator::Schedule代码更简洁。
Timer的简单使用
Timer m_nudTimer (Timer::CANCEL_ON_DESTROY);
if (m_nudTimer.IsRunning ())
{
m_nudTimer.Cancel ();
}
m_lastReachabilityConfirmation = Simulator::Now ();
//设置回调函数
m_nudTimer.SetFunction (Function);
//设置时延
m_nudTimer.SetDelay (MilliSeconds (delay));
//启动调度
m_nudTimer.Schedule ();
上面的代码与下面的代码等同:
Simulator::Schedule (MilliSeconds (delay), Function);
也可以设置一些参数:
Timer m_nudTimer (Timer::CANCEL_ON_DESTROY);
if (m_nudTimer.IsRunning ())
{
m_nudTimer.Cancel ();
}
m_lastReachabilityConfirmation = Simulator::Now ();
//设置回调函数, 函数属于object对象
m_nudTimer.SetFunction (&Function, object);
//设置参数
m_nudTimer.SetArguments(a1, a2, a3);
//设置时延
m_nudTimer.SetDelay (MilliSeconds (delay));
//启动调度
m_nudTimer.Schedule ();
上面的代码与下面的代码等同:
Simulator::Schedule (MilliSeconds (delay), &Function, object, a1, a2, a3);
网友评论