update download progress reporting

This commit is contained in:
Luke Pulverenti
2017-11-03 14:11:04 -04:00
parent 7174ee66d5
commit 0d28929e17
40 changed files with 84 additions and 482 deletions

View File

@@ -1,6 +1,7 @@
using System.IO;
using System.Threading;
using System;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.IO
{
@@ -23,5 +24,27 @@ namespace MediaBrowser.Controller.IO
}
}
}
public static async Task CopyToAsync(Stream source, Stream destination, int bufferSize, IProgress<double> progress, long contentLength, CancellationToken cancellationToken)
{
byte[] buffer = new byte[bufferSize];
int read;
long totalRead = 0;
while ((read = source.Read(buffer, 0, buffer.Length)) != 0)
{
cancellationToken.ThrowIfCancellationRequested();
destination.Write(buffer, 0, read);
totalRead += read;
double pct = totalRead;
pct /= contentLength;
pct *= 100;
progress.Report(pct);
}
}
}
}