コード例 #1
0
        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);
        }
コード例 #2
0
 private void OnCompleted(DownloadEventArgs args, DownloadInfo info)
 {
     args.Download.DetachAllHandlers();
     info.Finished = true;
     OnFileDownloadComplete?.Invoke(info);
 }