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);


  • 相关阅读:
    分页存储过程
    C#,单元测试
    telerik reporting报表
    在Linq to sql 和 Entity framework 中使用lambda表达式实现left join
    .NET提供了三种后台输出js的方式:
    转换人民币大小金额
    ASP.Net Post方式获取数据流的一种简单写法
    js数组中两个有相同删除一个
    我的个人博客
    It is the courage
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982032.html
Copyright © 2011-2022 走看看