Example #1
0
        private void CreateRateLimiters()
        {
            var downloader = new RateLimiter();

            DownloadLimiter = new RateLimiterGroup();
            DownloadLimiter.Add(new PauseLimiter(this));
            DownloadLimiter.Add(downloader);

            var uploader = new RateLimiter();

            UploadLimiter = new RateLimiterGroup();
            UploadLimiter.Add(new PauseLimiter(this));
            UploadLimiter.Add(uploader);
        }
Example #2
0
        private void CreateRateLimiters()
        {
            var downloader = new RateLimiter();

            _downloadLimiter = new RateLimiterGroup();
            _downloadLimiter.Add(new DiskWriterLimiter(DiskManager));
            _downloadLimiter.Add(downloader);

            var uploader = new RateLimiter();

            _uploadLimiter = new RateLimiterGroup();
            _downloadLimiter.Add(new DiskWriterLimiter(DiskManager));
            _uploadLimiter.Add(uploader);

            MainLoop.QueueTimeout(TimeSpan.FromSeconds(1), delegate
            {
                downloader.UpdateChunks(Settings.GlobalMaxDownloadSpeed, TotalDownloadSpeed);
                uploader.UpdateChunks(Settings.GlobalMaxUploadSpeed, TotalUploadSpeed);
                return(!Disposed);
            });
        }