private async Task DownloadChunk(Request downloadRequest, CancellationToken token) { token.ThrowIfCancellationRequested(); if (Chunk.IsDownloadCompleted() == false) { Chunk.SetValidPosition(); HttpWebRequest request = downloadRequest.GetRequest(); SetRequestRange(request); using HttpWebResponse downloadResponse = request.GetResponse() as HttpWebResponse; using Stream responseStream = downloadResponse?.GetResponseStream(); if (responseStream != null) { using ThrottledStream destinationStream = new ThrottledStream(responseStream, Configuration.MaximumSpeedPerChunk); await ReadStream(destinationStream, token).ConfigureAwait(false); } } }
private async Task DownloadChunk(Request downloadRequest, long maximumSpeed, CancellationToken token) { if (token.IsCancellationRequested || Chunk.IsDownloadCompleted()) { return; } Chunk.SetValidPosition(); HttpWebRequest request = downloadRequest.GetRequest(); SetRequestRange(request); using HttpWebResponse downloadResponse = request.GetResponse() as HttpWebResponse; using Stream responseStream = downloadResponse?.GetResponseStream(); if (responseStream != null) { using ThrottledStream destinationStream = new ThrottledStream(responseStream, maximumSpeed); await ReadStream(destinationStream, token); } }