private void Btn_download_Click(object sender, EventArgs e) { string url = txt_url.Text; downloader = new MultiThreadDownloader(); HelperDownload h = this.UpdateProgress; DownloadComplete d = this.DisplayMessage; downloader.DownloadHelperDownload(url, h, d); }
public static void DownloadFileAsync(string url, string path, string name, Action <object, EventArgs> progressChangedAction = null, Action <object, int> completedAction = null) { if (!Directory.Exists(path)) { return; } if (!path.EndsWith("\\")) { path += "\\"; } var mtd = new MultiThreadDownloader(url, path + name, 1); if (progressChangedAction != null) { mtd.TotalProgressChanged += (sender, e) => progressChangedAction.Invoke(sender, e); } if (completedAction != null) { mtd.FileMergeProgressChanged += (sender, e) => completedAction.Invoke(sender, e); } mtd.Start(); /*new Task(new Action(() => * { * if (!Directory.Exists(path)) { return; } * if (!path.EndsWith("\\")) { path += "\\"; } * try * { * byte[] data = HttpWebClient.Get(url); * if (data.Length != 0) * { * FileStream fs = new FileStream(path + name, FileMode.OpenOrCreate, FileAccess.ReadWrite); * fs.Write(data, 0, data.Length); * fs.Flush(); * fs.Dispose(); * fs.Close(); * } * } * catch * { * * } * * })).Start();*/ }
private void btnDownload_Click(object sender, RoutedEventArgs e) { var mtd = new MultiThreadDownloader("https://download.oracle.com/otn-pub/java/jdk/15+36/779bf45e88a44cbd9ea6621d33e33db1/jdk-15_windows-x64_bin.zip", Environment.GetEnvironmentVariable("temp"), "jdk-15_windows-x64_bin.zip", 8); mtd.TotalProgressChanged += (sender, e) => { var downloader = sender as MultiThreadDownloader; Console.WriteLine("下载进度:" + downloader.TotalProgress + "%"); Console.WriteLine("下载速度:" + downloader.TotalSpeedInBytes / 1024 / 1024 + "MBps"); }; mtd.FileMergeProgressChanged += (sender, e) => { Console.WriteLine("下载完成"); }; mtd.Start();//开始下载 //mtd.Pause(); // 暂停下载 //mtd.Resume(); // 继续下载 }
static void Main(string[] args) { var mtd = new MultiThreadDownloader("https://git.imweb.io/ldqk0/imgbed/raw/master/2020/01/05/sdcgssa1wlxc.jpg", Environment.GetEnvironmentVariable("temp"), "Y:\\1.jpg", 8); mtd.Configure(req => { req.Referer = "https://masuit.com"; req.Headers.Add("Origin", "https://baidu.com"); }); mtd.TotalProgressChanged += (sender, e) => { var downloader = sender as MultiThreadDownloader; Console.WriteLine("下载进度:" + downloader.TotalProgress + "%"); Console.WriteLine("下载速度:" + downloader.TotalSpeedInBytes / 1024 / 1024 + "MBps"); }; mtd.FileMergeProgressChanged += (sender, e) => { Console.WriteLine("下载完成"); }; mtd.Start();//开始下载 Console.ReadKey(); }
private void Application_Startup(object sender, StartupEventArgs e) { #region 检查环境 if ((System.Environment.Version.Major == 4) && (System.Environment.Version.Minor == 0)) { if ((!SystemTools.IsSetupFrameworkUpdate("KB2468871v2")) && (!SystemTools.IsSetupFrameworkUpdate("KB2468871"))) { var result = MessageBox.Show(GetResourceString("String.Message.NoFrameworkUpdate2"), GetResourceString("String.Message.NoFrameworkUpdate"), MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { System.Diagnostics.Process.Start("https://github.com/Nsiso/NsisoLauncher/wiki/%E5%90%AF%E5%8A%A8%E5%99%A8%E6%8A%A5%E9%94%99%EF%BC%9A%E5%BD%93%E5%89%8D%E7%94%B5%E8%84%91%E7%8E%AF%E5%A2%83%E7%BC%BA%E5%B0%91KB2468871v2%E8%A1%A5%E4%B8%81"); System.Environment.Exit(0); } } } #endregion #region DEBUG初始化 //debug logHandler = new LogHandler(true); AggregateExceptionCatched += (a, b) => logHandler.AppendFatal(b.AggregateException); if (e.Args.Contains("-debug")) { Windows.DebugWindow debugWindow = new Windows.DebugWindow(); debugWindow.Show(); logHandler.OnLog += (s, log) => debugWindow?.AppendLog(s, log); } #endregion config = new ConfigHandler(); #region DEBUG初始化(基于配置文件) if (config.MainConfig.Launcher.Debug && !e.Args.Contains("-debug")) { Windows.DebugWindow debugWindow = new Windows.DebugWindow(); debugWindow.Show(); logHandler.OnLog += (s, log) => debugWindow?.AppendLog(s, log); } #endregion #region 数据初始化 Config.Environment env = config.MainConfig.Environment; javaList = Java.GetJavaList(); //设置版本路径 string gameroot = null; switch (env.GamePathType) { case GameDirEnum.ROOT: gameroot = Path.GetFullPath(".minecraft"); break; case GameDirEnum.APPDATA: gameroot = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData) + "\\.minecraft"; break; case GameDirEnum.PROGRAMFILES: gameroot = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) + "\\.minecraft"; break; case GameDirEnum.CUSTOM: gameroot = env.GamePath + "\\.minecraft"; break; default: throw new ArgumentException("判断游戏目录类型时出现异常,请检查配置文件中GamePathType节点"); } logHandler.AppendInfo("核心初始化->游戏根目录(默认则为空):" + gameroot); //设置JAVA Java java = null; if (env.AutoJava) { java = Java.GetSuitableJava(javaList); } else { java = javaList.Find(x => x.Path == env.JavaPath); if (java == null) { java = Java.GetJavaInfo(env.JavaPath); } } if (java != null) { env.JavaPath = java.Path; logHandler.AppendInfo("核心初始化->Java路径:" + java.Path); logHandler.AppendInfo("核心初始化->Java版本:" + java.Version); logHandler.AppendInfo("核心初始化->Java位数:" + java.Arch); } else { logHandler.AppendWarn("核心初始化失败,当前电脑未匹配到JAVA"); } //设置版本独立 bool verIso = config.MainConfig.Environment.VersionIsolation; #endregion #region 启动核心初始化 handler = new LaunchHandler(gameroot, java, verIso); handler.GameLog += (s, log) => logHandler.AppendLog(s, new Log() { LogLevel = LogLevel.GAME, Message = log }); #endregion #region 载核心初始化 ServicePointManager.DefaultConnectionLimit = 10; Download downloadCfg = config.MainConfig.Download; downloader = new MultiThreadDownloader(); if (!string.IsNullOrWhiteSpace(downloadCfg.DownloadProxyAddress)) { WebProxy proxy = new WebProxy(downloadCfg.DownloadProxyAddress, downloadCfg.DownloadProxyPort); if (!string.IsNullOrWhiteSpace(downloadCfg.ProxyUserName)) { NetworkCredential credential = new NetworkCredential(downloadCfg.ProxyUserName, downloadCfg.ProxyUserPassword); proxy.Credentials = credential; } downloader.Proxy = proxy; } downloader.ProcessorSize = App.config.MainConfig.Download.DownloadThreadsSize; downloader.DownloadLog += (s, log) => logHandler?.AppendLog(s, log); #endregion #region NIDE8核心初始化 if (!string.IsNullOrWhiteSpace(config.MainConfig.User.Nide8ServerID)) { nide8Handler = new Core.Net.Nide8API.APIHandler(config.MainConfig.User.Nide8ServerID); nide8Handler.UpdateBaseURL(); } #endregion #region 自定义主题初始化 var custom = config.MainConfig.Customize; if (!string.IsNullOrWhiteSpace(custom.AccentColor) && !string.IsNullOrWhiteSpace(custom.AppThme)) { logHandler.AppendInfo("自定义->更改主题颜色:" + custom.AccentColor); logHandler.AppendInfo("自定义->更改主题:" + custom.AppThme); ThemeManager.ChangeAppStyle(Current, ThemeManager.GetAccent(custom.AccentColor), ThemeManager.GetAppTheme(custom.AppThme)); } #endregion }
private void Application_Startup(object sender, StartupEventArgs e) { #region DEBUG初始化 //debug logHandler = new LogHandler(true); AggregateExceptionCatched += (a, b) => logHandler.AppendFatal(b.AggregateException); if (e.Args.Contains("-debug")) { Windows.DebugWindow debugWindow = new Windows.DebugWindow(); debugWindow.Show(); logHandler.OnLog += (s, log) => debugWindow?.AppendLog(s, log); } #endregion config = new ConfigHandler(); #region DEBUG初始化(基于配置文件) if (config.MainConfig.Launcher.Debug && !e.Args.Contains("-debug")) { Windows.DebugWindow debugWindow = new Windows.DebugWindow(); debugWindow.Show(); logHandler.OnLog += (s, log) => debugWindow?.AppendLog(s, log); } #endregion #region MineRealms反馈API初始化 #if DEBUG MineRealmsAPIHandler = new MineRealmsLauncherCore.Net.PhalAPI.APIHandler(true); #else MineRealmsAPIHandler = new MineRealmsLauncherCore.Net.PhalAPI.APIHandler(config.MainConfig.Launcher.NoTracking); #endif #endregion #region 数据初始化 Config.Environment env = config.MainConfig.Environment; javaList = Java.GetJavaList(); //设置版本路径 string gameroot = null; switch (env.GamePathType) { case GameDirEnum.ROOT: gameroot = Path.GetFullPath(".minecraft"); break; case GameDirEnum.APPDATA: gameroot = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData) + "\\.minecraft"; break; case GameDirEnum.PROGRAMFILES: gameroot = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) + "\\.minecraft"; break; case GameDirEnum.CUSTOM: gameroot = env.GamePath + "\\.minecraft"; break; default: throw new ArgumentException("判断游戏目录类型时出现异常,请检查配置文件中GamePathType节点"); } logHandler.AppendInfo("核心初始化->游戏根目录(默认则为空):" + gameroot); //设置JAVA Java java = null; if (env.AutoJava) { java = Java.GetSuitableJava(javaList); } else { java = javaList.Find(x => x.Path == env.JavaPath); if (java == null) { java = Java.GetJavaInfo(env.JavaPath); } } if (java != null) { env.JavaPath = java.Path; logHandler.AppendInfo("核心初始化->Java路径:" + java.Path); logHandler.AppendInfo("核心初始化->Java版本:" + java.Version); logHandler.AppendInfo("核心初始化->Java位数:" + java.Arch); } else { logHandler.AppendWarn("核心初始化失败,当前电脑未匹配到JAVA"); } //设置版本独立 bool verIso = config.MainConfig.Environment.VersionIsolation; #endregion #region 启动核心初始化 handler = new LaunchHandler(gameroot, java, verIso); handler.GameLog += (s, log) => logHandler.AppendLog(s, new Log() { LogLevel = LogLevel.GAME, Message = log }); handler.LaunchLog += (s, log) => logHandler.AppendLog(s, log); #endregion #region 载核心初始化 ServicePointManager.DefaultConnectionLimit = 10; Download downloadCfg = config.MainConfig.Download; downloader = new MultiThreadDownloader(); if (!string.IsNullOrWhiteSpace(downloadCfg.DownloadProxyAddress)) { WebProxy proxy = new WebProxy(downloadCfg.DownloadProxyAddress, downloadCfg.DownloadProxyPort); if (!string.IsNullOrWhiteSpace(downloadCfg.ProxyUserName)) { NetworkCredential credential = new NetworkCredential(downloadCfg.ProxyUserName, downloadCfg.ProxyUserPassword); proxy.Credentials = credential; } downloader.Proxy = proxy; } downloader.ProcessorSize = App.config.MainConfig.Download.DownloadThreadsSize; downloader.CheckFileHash = App.config.MainConfig.Download.CheckDownloadFileHash; downloader.DownloadLog += (s, log) => logHandler?.AppendLog(s, log); #endregion #region 自定义主题初始化 var custom = config.MainConfig.Customize; if (!string.IsNullOrWhiteSpace(custom.AccentColor) && !string.IsNullOrWhiteSpace(custom.AppThme)) { logHandler.AppendInfo("自定义->更改主题颜色:" + custom.AccentColor); logHandler.AppendInfo("自定义->更改主题:" + custom.AppThme); ThemeManager.ChangeAppStyle(Current, ThemeManager.GetAccent(custom.AccentColor), ThemeManager.GetAppTheme(custom.AppThme)); } #endregion }
private void Application_Startup(object sender, StartupEventArgs e) { #region DEBUG初始化 //debug LogHandler = new LogHandler(true); AggregateExceptionCatched += (a, b) => LogHandler.AppendFatal(b.AggregateException); if (e.Args.Contains("-debug")) { DebugWindow debugWindow = new DebugWindow(); debugWindow.Show(); LogHandler.OnLog += (s, log) => debugWindow?.AppendLog(s, log); } #endregion #region 从旧版本跳转 String[] args = System.Environment.GetCommandLineArgs(); if (args.Length == 2) { //关闭并删除旧版本 Task.Run(() => { Process oldLauncher = Process.GetProcessById(Convert.ToInt32(args[1])); string oldLauncherPath = oldLauncher.MainModule.FileName; oldLauncher.Kill(); oldLauncher.WaitForExit(); File.Delete(oldLauncherPath); }); } #endregion Config = new ConfigHandler(); #region DEBUG初始化(基于配置文件) if (Config.MainConfig.Launcher.Debug && !e.Args.Contains("-debug")) { DebugWindow debugWindow = new DebugWindow(); debugWindow.Show(); LogHandler.OnLog += (s, log) => debugWindow?.AppendLog(s, log); } #endregion #region Nsiso反馈API初始化 #if DEBUG NsisoAPIHandler = new NsisoLauncherCore.Net.PhalAPI.APIHandler(true); #else NsisoAPIHandler = new NsisoLauncherCore.Net.PhalAPI.APIHandler(Config.MainConfig.Launcher.NoTracking); #endif #endregion #region 数据初始化 Config.Environment env = Config.MainConfig.Environment; JavaList = Java.GetJavaList(); //设置版本路径 string gameroot = null; switch (env.GamePathType) { case GameDirEnum.ROOT: gameroot = Path.GetFullPath(".minecraft"); break; case GameDirEnum.APPDATA: gameroot = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData) + "\\.minecraft"; break; case GameDirEnum.PROGRAMFILES: gameroot = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) + "\\.minecraft"; break; case GameDirEnum.CUSTOM: gameroot = env.GamePath + "\\.minecraft"; break; default: throw new ArgumentException("判断游戏目录类型时出现异常,请检查配置文件中GamePathType节点"); } LogHandler.AppendInfo("核心初始化->游戏根目录(默认则为空):" + gameroot); //设置JAVA Java java = null; if (env.AutoJava) { java = Java.GetSuitableJava(JavaList); } else { java = JavaList.Find(x => x.Path == env.JavaPath); if (java == null) { java = Java.GetJavaInfo(env.JavaPath); } } if (java != null) { env.JavaPath = java.Path; LogHandler.AppendInfo("核心初始化->Java路径:" + java.Path); LogHandler.AppendInfo("核心初始化->Java版本:" + java.Version); LogHandler.AppendInfo("核心初始化->Java位数:" + java.Arch); } else { LogHandler.AppendWarn("核心初始化失败,当前电脑未匹配到JAVA"); } //设置版本独立 bool verIso = Config.MainConfig.Environment.VersionIsolation; #endregion #region 启动核心初始化 Handler = new LaunchHandler(gameroot, java, verIso); Handler.GameLog += (s, log) => LogHandler.AppendLog(s, new Log() { LogLevel = LogLevel.GAME, Message = log }); Handler.LaunchLog += (s, log) => LogHandler.AppendLog(s, log); #endregion #region 载核心初始化 ServicePointManager.DefaultConnectionLimit = 10; Download downloadCfg = Config.MainConfig.Download; Downloader = new MultiThreadDownloader(); if (!string.IsNullOrWhiteSpace(downloadCfg.DownloadProxyAddress)) { WebProxy proxy = new WebProxy(downloadCfg.DownloadProxyAddress, downloadCfg.DownloadProxyPort); if (!string.IsNullOrWhiteSpace(downloadCfg.ProxyUserName)) { NetworkCredential credential = new NetworkCredential(downloadCfg.ProxyUserName, downloadCfg.ProxyUserPassword); proxy.Credentials = credential; } Downloader.Proxy = proxy; } Downloader.ProcessorSize = App.Config.MainConfig.Download.DownloadThreadsSize; Downloader.CheckFileHash = App.Config.MainConfig.Download.CheckDownloadFileHash; Downloader.DownloadLog += (s, log) => LogHandler?.AppendLog(s, log); #endregion #region 自定义主题初始化 var custom = Config.MainConfig.Customize; if (!string.IsNullOrWhiteSpace(custom.AccentColor) && !string.IsNullOrWhiteSpace(custom.AppThme)) { LogHandler.AppendInfo("自定义->更改主题颜色:" + custom.AccentColor); LogHandler.AppendInfo("自定义->更改主题:" + custom.AppThme); ThemeManager.ChangeAppStyle(Current, ThemeManager.GetAccent(custom.AccentColor), ThemeManager.GetAppTheme(custom.AppThme)); } #endregion #region 读取版本 VersionList = new ObservableCollection <Version>(); RefreshVersionList(); #endregion }
private void Application_Startup(object sender, StartupEventArgs e) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11; Process[] myProcesses = Process.GetProcessesByName("NsisoLauncher");//获取指定的进程名 bool self = false; foreach (var item in myProcesses) { if (item.MainModule.FileName == AppDomain.CurrentDomain.BaseDirectory + AppDomain.CurrentDomain.FriendlyName) { if (self == false) { self = true; } else { SetForegroundWindow(item.MainWindowHandle); Shutdown(); } } } LogHandler = new LogHandler(true); Config = new ConfigHandler(); EnvironmentObj env = Config.MainConfig.Environment; JavaList = Java.GetJavaList(); AggregateExceptionCatched += (a, b) => LogHandler.AppendFatal(b.AggregateException); if (Config.MainConfig.Launcher.Debug || e.Args.Contains("-debug")) { DebugWindow debugWindow = new DebugWindow(); debugWindow.Show(); LogHandler.OnLog += (s, log) => debugWindow?.AppendLog(s, log); } nsisoAPIHandler = new APIHandler(Config.MainConfig.Launcher.NoTracking); //设置版本路径 string gameroot = null; switch (env.GamePathType) { case GameDirEnum.ROOT: gameroot = Path.GetFullPath(".minecraft"); break; case GameDirEnum.APPDATA: gameroot = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\.minecraft"; break; case GameDirEnum.PROGRAMFILES: gameroot = System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "\\.minecraft"; break; case GameDirEnum.CUSTOM: gameroot = env.GamePath + "\\.minecraft"; break; default: throw new ArgumentException("判断游戏目录类型时出现异常,请检查配置文件中GamePathType节点"); } LogHandler.AppendInfo("核心初始化->游戏根目录(默认则为空):" + gameroot); //设置JAVA Java java; if (env.AutoJava) { java = Java.GetSuitableJava(JavaList); } else { java = JavaList.Find(x => x.Path == env.JavaPath); if (java == null) { java = Java.GetJavaInfo(env.JavaPath); } } if (java != null) { env.JavaPath = java.Path; LogHandler.AppendInfo("核心初始化->Java路径:" + java.Path); LogHandler.AppendInfo("核心初始化->Java版本:" + java.Version); LogHandler.AppendInfo("核心初始化->Java位数:" + java.Arch); } else { LogHandler.AppendWarn("核心初始化失败,当前电脑未匹配到JAVA"); } bool verIso = Config.MainConfig.Environment.VersionIsolation; Handler = new LaunchHandler(gameroot, java, verIso); Handler.GameLog += (s, log) => LogHandler.AppendLog(s, new Log() { LogLevel = LogLevel.GAME, Message = log }); Handler.LaunchLog += (s, log) => LogHandler.AppendLog(s, log); ServicePointManager.DefaultConnectionLimit = 10; Downloader = new MultiThreadDownloader(); ProxyRe(); Downloader.ProcessorSize = Config.MainConfig.Download.DownloadThreadsSize; Downloader.CheckFileHash = Config.MainConfig.Download.CheckDownloadFileHash; Downloader.DownloadLog += (s, log) => LogHandler?.AppendLog(s, log); var custom = Config.MainConfig.Customize; if (!string.IsNullOrWhiteSpace(custom.AppThme)) { LogHandler.AppendInfo("自定义->更改主题:" + custom.AppThme); ThemeManager.Current.ChangeTheme(Current, custom.AppThme); } Lauguage(); }
/// <summary> /// 下载文件 /// </summary> /// <param name="downloading"></param> /// <param name="urls"></param> /// <param name="path"></param> /// <param name="localFileName"></param> /// <returns></returns> private bool DownloadByBuiltin(DownloadingItem downloading, List <string> urls, string path, string localFileName) { // path已斜杠结尾,去掉斜杠 path = path.TrimEnd('/').TrimEnd('\\'); foreach (var url in urls) { // 创建下载器 var mtd = new MultiThreadDownloader(url, Environment.GetEnvironmentVariable("temp"), Path.Combine(path, localFileName), SettingsManager.GetInstance().GetSplit()); // 配置网络请求 mtd.Configure(req => { req.CookieContainer = LoginHelper.GetLoginInfoCookies(); req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36"; req.Referer = "https://www.bilibili.com"; req.Headers.Add("Origin", "https://www.bilibili.com"); if (SettingsManager.GetInstance().IsHttpProxy() == AllowStatus.YES) { req.Proxy = new WebProxy(SettingsManager.GetInstance().GetHttpProxy(), SettingsManager.GetInstance().GetHttpProxyListenPort()); } }); // 下载进度回调 mtd.TotalProgressChanged += (sender, e) => { try { // 状态更新 var downloader = sender as MultiThreadDownloader; // 下载进度百分比 float percent = downloader.TotalProgress; // 根据进度判断本次是否需要更新UI if (Math.Abs(percent - downloading.Progress) < 0.01) { return; } if (Math.Abs(percent - downloading.Progress) > 5) { return; } // 下载进度 downloading.Progress = percent; // 下载大小 downloading.DownloadingFileSize = Format.FormatFileSize(downloader.TotalBytesReceived) + "/" + Format.FormatFileSize(downloader.Size); // 下载速度 long speed = (long)downloader.TotalSpeedInBytes; // 下载速度显示 downloading.SpeedDisplay = Format.FormatSpeed(speed); // 最大下载速度 if (downloading.Downloading.MaxSpeed < speed) { downloading.Downloading.MaxSpeed = speed; } } catch (InvalidOperationException ex) { Core.Utils.Debugging.Console.PrintLine($"{Tag}.DownloadByBuiltin()发生InvalidOperationException异常: {0}", ex); LogManager.Error($"{Tag}.DownloadByBuiltin()", ex); } catch (Exception ex) { Core.Utils.Debugging.Console.PrintLine($"{Tag}.DownloadByBuiltin()发生异常: {0}", ex); LogManager.Error($"{Tag}.DownloadByBuiltin()", ex); } }; // 文件合并完成回调 bool isComplete = false; mtd.FileMergedComplete += (sender, e) => { // 跳出循环 if (File.Exists(Path.Combine(path, localFileName))) { isComplete = true; } }; // 开始下载 mtd.StartAsync(); // 阻塞当前任务,监听暂停事件 while (!isComplete) { cancellationToken.ThrowIfCancellationRequested(); switch (downloading.Downloading.DownloadStatus) { case DownloadStatus.PAUSE: // 暂停下载 mtd.Pause(); // 通知UI,并阻塞当前线程 Pause(downloading); break; case DownloadStatus.DOWNLOADING: break; } Thread.Sleep(100); } return(isComplete); } return(false); }