zoukankan      html  css  js  c++  java
  • ICE的Timer和TimerTask

    IceUtil中提供了Timer和TimerTask来实现定时计算。Timer可以定时或重复执行TimerTask。

    class Timer : /* ... */ {
    public:
        Timer();
    
        void schedule(const TimerTaskPtr& task,
                      const IceUtil::Time& interval);
        void scheduleRepeated(const TimerTaskPtr& task,
                              const IceUtil::Time& interval);
        bool cancel(const TimerTaskPtr& task);
        void destroy();
    };
    typedef IceUtil::Handle<Timer> TimerPtr;
    
    class TimerTask : virtual public IceUtil::Shared {
    public:
        virtual ~TimerTask() { }
        virtual void runTimerTask() = 0;
    };
    typedef IceUtil::Handle<TimerTask> TimerTaskPtr;

    schedule: 在interval时间后执行timertask中的runTimerTask,只执行一次。

    scheduleRepeated: 每隔interval时间,就会重复执行timerTask实例的runTimerTask。

    cancel: 取消重复执行的task,对于一次性的task无效。正在运行的task会正常结束后,被取消。

    destroy: 删除执行表上的所有task。

    补:

    1.纯虚函数使类成为抽象类,不能实例化。只能子类继承并实现所有纯虚函数。

    2.虚继承是多重继承下的特有概念,避免虚基类(Shared)在子类中有过个对象出现。

    3.IceUtil::Time

    class Time {
    public:
    Time();
    static Time now();
    static Time seconds(long);
    static Time milliSeconds(long);
    static Time microSeconds(long long);
    ...
    }
    IceUtil::Time t = IceUtil::Time::seconds(5);


  • 相关阅读:
    一个禁止某个document element对象选中文本的js方法
    LNMP中nginx和php的安装流程
    nginx编译
    nginx服务器管理
    nginx+phpfpm配置文件的组织结构
    win 8 x64 english key
    WdatePicker 设置时间范围在某个时间段
    Vm workstation安装win8 的问题
    android 开发中xml的解析
    多线程下载文件
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982032.html
Copyright © 2011-2022 走看看