Exemplo n.º 1
0
        public void OnTick(int insID, OnTickDelegate onTick, bool isSubscribe)
        {
            if (onTick == null) return;

            if (isSubscribe)
            {
                if (!_insID_onTicks.ContainsKey(insID))
                {
                    _insID_onTicks.Add(insID, new List<OnTickDelegate>() { onTick });
                }
                else
                {
                    var onTicks = _insID_onTicks[insID];
                    if (!onTicks.Contains(onTick)) { onTicks.Add(onTick); }
                }
            }
            else
            {
                if (_insID_onTicks.ContainsKey(insID))
                {
                    var onTicks = _insID_onTicks[insID];
                    if (onTicks.Contains(onTick))
                    {
                        onTicks.Remove(onTick);
                        if (!onTicks.Any())
                        {
                            _insID_onTicks.Remove(insID);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
 public Clock(OnTickDelegate onTickCallback)
 {
     _timer = new System.Threading.Timer(OnTickHappened, null, Timeout.InfiniteTimeSpan, Timeout.InfiniteTimeSpan);
     if (onTickCallback != null)
     {
         OnTick += onTickCallback;
     }
 }
Exemplo n.º 3
0
 public void OnTick(int insID, OnTickDelegate onTick, bool isSubscribe)
 {
     if (isSubscribe)
     {
         if (!_ins_onTick.ContainsKey(insID))
         {
             _ins_onTick.Add(insID, onTick);
             _tickDisp.Subscribe(this, insID, OnTick);
         }
     }
     else
     {
         if (_ins_onTick.ContainsKey(insID))
         {
             _ins_onTick.Remove(insID);
             _tickDisp.Unsubscribe(this, insID);
         }
     }
 }