public DownloadInfo StartDownload(string src, string dst) { var url = new Uri(src); var file = new System.IO.FileInfo(dst); var requestBuilder = new SimpleWebRequestBuilder(); var dlChecker = new DownloadChecker(); var httpDlBuilder = new SimpleDownloadBuilder(requestBuilder, dlChecker); var rdlBuilder = new ResumingDownloadBuilder(3000, 5000, 5, httpDlBuilder); var download = new MultiPartDownload(url, 4096, 4, rdlBuilder, requestBuilder, dlChecker, null); var dlSaver = new DownloadToFileSaver(file); var speedMonitor = new DownloadSpeedMonitor(128); var info = new DownloadInfo(progressMonitor, speedMonitor, download, src, dst); speedMonitor.Attach(download); progressMonitor.Attach(download); dlSaver.Attach(download); download.DownloadCompleted += (x) => OnCompleted(x, info); download.Start(); return(info); }
private void OnCompleted(DownloadEventArgs args, DownloadInfo info) { args.Download.DetachAllHandlers(); info.Finished = true; OnFileDownloadComplete?.Invoke(info); }