protected override ICPEvent <T> Add(OnCPEvent <T> cb)
        {
            lock (history)
            {
                if (history.Count > 0)
                {
                    foreach (T evData in history)
                    {
                        cb.Invoke(evData);
                    }
                }
            }
            _event += cb;

            return(this);
        }
 protected abstract ICPEvent <T> Sub(OnCPEvent <T> cb);
 protected abstract ICPEvent <T> Add(OnCPEvent <T> cb);
        protected override ICPEvent <T> Sub(OnCPEvent <T> cb)
        {
            _event -= cb;

            return(this);
        }