internal override void _Exce(ViTimer timer) { Callback dele = _delegate; _delegate = null; _execTime = 0; dele(this); }
// internal override void _Exce(ViTimer timer) { Callback dele = _delegate; _delegate = null; dele(this, _param); _execTime = 0; _param = default(T); }
// public void Start(ViTimer timer, UInt32 cnt, UInt32 span) { if (cnt > 0) { _reserveCnt = cnt - 1; _span = span; SetTime(timer.Time + _span); timer.Add(this); } }
public ViTime64 GetReserveDuration(ViTimer timer) { if (base.IsAttach()) { return((_execTime > timer.Time) ? (_execTime - timer.Time) : 1); } else { return(0); } }
public void SetReserveTime(ViTimer timer, UInt32 span, ViTime64 reserveTime) { if (span != 0) { _span = span; ViTime64 reserveTimeMod = (reserveTime > 0) ? (reserveTime - 1) : 0; _reserveCnt = (UInt32)(reserveTimeMod / _span); UInt32 reserveSpan = (UInt32)(reserveTimeMod % _span + 1); SetTime(timer.Time + reserveSpan); timer.Add(this); } }
public new bool GetReserveDuration(ViTimer timer, ref ViTime64 reserveTime) { if (base.GetReserveDuration(timer, ref reserveTime)) { ViDebuger.AssertError(reserveTime > 0); reserveTime += (Int64)_span * _reserveCnt; return(true); } else { return(false); } }
public bool GetReserveDuration(ViTimer timer, ref ViTime64 reserveTime) { if (base.IsAttach()) { reserveTime = (_execTime > timer.Time) ? (_execTime - timer.Time) : 1; return(true); } else { reserveTime = 0; return(false); } }
public static void Test() { ViTimer timer = new ViTimer(); Listener listener = new Listener(); timer.Start(0, 10, 10, 10); listener._node.SetTime(10); listener._node._SetDelegate(listener.Func); timer.Add(listener._node); timer.Update(9); timer.Update(11); listener._node.Detach(); timer.End(); }
// internal override void _Exce(ViTimer timer) { if (_reserveCnt > 0) { --_reserveCnt; _delegate(this); SetTime(timer.Time + _span); timer.Add(this); } else { Callback dele = _delegate; _delegate = null; dele(this); _execTime = 0; _span = 0; } }
internal override void _Exce(ViTimer timer) { if (_reserveCnt == 0) { Callback dele = _endDelegate; _tickDelegate = null; _endDelegate = null; dele(this); // _execTime = 0; _span = 0; } else { _tickDelegate(this); --_reserveCnt; SetTime(timer.Time + _span); timer.Add(this); } }
internal abstract void _Exce(ViTimer timer);