public async Task Start(string baseurl, string guid, Manifest manifest, Media media, CancellationToken token,IProgress<double> progress) { this.media = media; this.guid = guid; this.baseurl = baseurl; this.bootstrap = media.Info.Info; this.manifest = manifest; await InitFile(); await DoNextFragment(); progress.Report((double)bootstrap.CurrentFragmentWrite * 100D/(double)bootstrap.FragmentCount); token.ThrowIfCancellationRequested(); await ThreadProcessor(token, progress); token.ThrowIfCancellationRequested(); }