//------------------------------------------------------------------------- // 修改一个时间事件的时间 public int modTimer(EbTimeEvent time_event, ulong expires) { delTimer(time_event); time_event.mExpires = expires; addTimer(time_event); return(0); }
//------------------------------------------------------------------------- // 添加一个时间事件 public void addTimer(EbTimeEvent time_event) { EbDoubleLinkNode <EbTimeEvent> timer_node = new EbDoubleLinkNode <EbTimeEvent>(); timer_node.mObject = time_event; mMapEventNode[time_event] = timer_node; _addTimer(timer_node); }
//------------------------------------------------------------------------- // 删除一个时间事件 public int delTimer(EbTimeEvent time_event) { if (mMapEventNode.ContainsKey(time_event)) { EbDoubleLinkNode <EbTimeEvent> timer_node = mMapEventNode[time_event]; _delTimer(timer_node); } return(0); }
//--------------------------------------------------------------------- // 删除一个时间事件 public int DelTimer(EbTimeEvent time_event) { if (MapEventNode.ContainsKey(time_event)) { EbDoubleLinkNode <EbTimeEvent> timer_node = MapEventNode[time_event]; MapEventNode.Remove(time_event); _delTimer(timer_node); } return(0); }
//--------------------------------------------------------------------- public EbTimer(TimerShaft timer_shaft, ulong tm, Action cb) { TimerShaft = timer_shaft; TmSpan = tm; FuncCb = cb; LastTimeJeffies = TimerShaft.GetTimeJeffies() + TmSpan; Closed = false; var time_ev = new EbTimeEvent() { mExpires = TimerShaft.GetTimeJeffies() + TmSpan, onTime = _onTimer, mData = null }; TimerShaft.AddTimer(time_ev); }
//--------------------------------------------------------------------- void _onTimer(object data) { if (Closed) { return; } LastTimeJeffies += TmSpan; var delta_tm = LastTimeJeffies - TimerShaft.GetTimeJeffies(); var time_ev = new EbTimeEvent() { mExpires = TimerShaft.GetTimeJeffies() + delta_tm, onTime = _onTimer, mData = null }; TimerShaft.AddTimer(time_ev); FuncCb(); }
//------------------------------------------------------------------------- // 修改一个时间事件的时间 public int modTimer(EbTimeEvent time_event, ulong expires) { delTimer(time_event); time_event.mExpires = expires; addTimer(time_event); return 0; }
//------------------------------------------------------------------------- // 删除一个时间事件 public int delTimer(EbTimeEvent time_event) { if (mMapEventNode.ContainsKey(time_event)) { EbDoubleLinkNode<EbTimeEvent> timer_node = mMapEventNode[time_event]; _delTimer(timer_node); } return 0; }
//------------------------------------------------------------------------- // 添加一个时间事件 public void addTimer(EbTimeEvent time_event) { EbDoubleLinkNode<EbTimeEvent> timer_node = new EbDoubleLinkNode<EbTimeEvent>(); timer_node.mObject = time_event; mMapEventNode[time_event] = timer_node; _addTimer(timer_node); }