public virtual IEnumerator <ITask> TickHandler(Tick tick) { if (_state.Timeout > 0 && _state.Expires <= DateTime.Now.AddMilliseconds(_tickInterval / 2.0)) { LogVerbose("Firing Timer due at " + _state.Expires); FireTimerRequest request = new FireTimerRequest(); request.Interval = _state.Timeout; request.Fired = DateTime.Now; _mainPort.Post(new FireTimer(request)); _state.Expires = DateTime.MaxValue; _state.Timeout = 0; } _state.Ticks = (_state.Ticks + 1) % _tickFilter; if (_state.Ticks == 0) { SendNotification(_subMgr, tick); } yield break; }
/// <summary> /// Constructor /// </summary> /// <param name="body"></param> public FireTimer(FireTimerRequest body) : base(body) { }