NS3 Timer类说明

作者: shawn168 | 来源:发表于2017-06-25 20:34 被阅读245次

    官方文档介绍

    一个简单的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);
    

    相关文章

      网友评论

        本文标题:NS3 Timer类说明

        本文链接:https://www.haomeiwen.com/subject/hqzlattx.html