Exemple #1
0
        private void AddItem(SpeedItem speedItem)
        {
            lock (_lockObject)
            {
                _speedItems.Insert(0, speedItem);

                CleanUpSpeedItems();
            }
        }
Exemple #2
0
        /// <summary>
        ///     Report a download progress
        /// </summary>
        /// <param name="time">The current time when this took place</param>
        /// <param name="totalBytes">The total number of bytes that are transferred</param>
        /// <param name="bytesReceived">The total number of bytes received so far</param>
        public void ReportProgress(DateTime time, long totalBytes, long bytesReceived)
        {
            _totalBytes = totalBytes;

            var bytes    = bytesReceived - _lastByteCount;
            var duration = time - _lastProgressEvent;

            var speed = new SpeedItem(bytes, duration);

            AddItem(speed);

            _lastByteCount     = bytesReceived;
            _lastProgressEvent = time;

            CalculateSpeed();
        }