OctoTorrent.Common.SpeedMonitor.TimePeriodPassed C# (CSharp) Méthode

TimePeriodPassed() private méthode

private TimePeriodPassed ( int difference ) : void
difference int
Résultat void
        private void TimePeriodPassed(int difference)
        {
            var currSpeed = (int) (_tempRecvCount*1000/difference);
            _tempRecvCount = 0;

            int speedsCount;
            if (_speedsIndex < 0)
            {
                //speeds array hasn't been filled yet

                var idx = _speeds.Length + _speedsIndex;

                _speeds[idx] = currSpeed;
                speedsCount = idx + 1;

                _speedsIndex++;
            }
            else
            {
                //speeds array is full, keep wrapping around overwriting the oldest value
                _speeds[_speedsIndex] = currSpeed;
                speedsCount = _speeds.Length;

                _speedsIndex = (_speedsIndex + 1)%_speeds.Length;
            }

            var total = _speeds[0];
            for (var i = 1; i < speedsCount; i++)
                total += _speeds[i];

            Rate = total/speedsCount;
        }