CSharpRTMP.Common.TimersManager.UpdatePeriods C# (CSharp) Метод

UpdatePeriods() приватный Метод

private UpdatePeriods ( uint period ) : void
period uint
Результат void
        void UpdatePeriods(uint period)
        {
            if (_periodsMap.ContainsKey(period)) return;
            _periodsMap[period] = period;
            _periodsVector.Add(period);

            uint newSlotsCount = LCM(_periodsVector, 0);
            if (newSlotsCount == 0)
                newSlotsCount = period;
            if (newSlotsCount == _slotsCount)return;
            if (_pSlots.Count < newSlotsCount)
            {
                var newcount = newSlotsCount - _pSlots.Count;
                _pSlots.AddRange(Enumerable.Range(0, (int) newcount).Select(x => new Dictionary<uint, TimerEvent>()));
            }
            else
            {
                _pSlots.RemoveRange((int) (_pSlots.Count-1-newSlotsCount),(int) newSlotsCount);
            }
            if (_slotsCount > 0)
            {
                for (var i = (int)_slotsCount; i < newSlotsCount; i++)
                {
                    _pSlots[i] = _pSlots[(int)(i % _slotsCount)];
                }
            }
            //_pSlots = pNewSlots;
            _slotsCount = newSlotsCount;
        }