代码拉取完成,页面将自动刷新
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Downloader
{
/// <summary>
/// 下载任务管理器
/// </summary>
class DownTaskManager
{
private Dictionary<string, DownTask> DownTasks = new Dictionary<string, DownTask>();
/// <summary>
/// 创建下载任务
/// </summary>
/// <returns>任务</returns>
public DownTask MakeDownTask(string URL, string path, int threadNum)
{
// 简单工厂策略
return new DownTask(URL, path, threadNum);
}
/// <summary>
/// 添加到任务队列
/// </summary>
/// <param name="name">任务名</param>
/// <param name="downTask">任务对象</param>
/// <returns>成功与否,false表示任务名已存在</returns>
public bool Add(string name, DownTask downTask)
{
if (this.DownTasks.ContainsKey(name))
{
// 存在则返回false
return false;
}
else
{
// 不存在则添加后放回true
this.DownTasks.Add(name, downTask);
return true;
}
}
/// <summary>
/// 通过任务名开始任务
/// </summary>
/// <param name="taskName">任务名</param>
/// <returns>成功与否,false代表不存在此任务</returns>
public bool StartsByName(string taskName)
{
if (this.DownTasks.ContainsKey(taskName))
{
// 存在则返回false
return false;
}
else
{
// 不存在则做事后放回true
this.DownTasks[taskName].StartAsync();
return true;
}
}
/// <summary>
/// 通过任务名暂停任务
/// </summary>
/// <param name="taskName">任务名</param>
/// <returns>成功与否,false代表不存在此任务</returns>
public bool PauseByName(string taskName)
{
if (this.DownTasks.ContainsKey(taskName))
{
// 存在则返回false
return false;
}
else
{
// 不存在则做事后放回true
this.DownTasks[taskName].Pause();
return true;
}
}
/// <summary>
/// 通过任务名停止任务
/// </summary>
/// <param name="taskName">任务名</param>
/// <returns>成功与否,false代表不存在此任务</returns>
public bool StopByName(string taskName)
{
if (this.DownTasks.ContainsKey(taskName))
{
// 存在则返回false
return false;
}
else
{
// 不存在则做事后放回true
this.DownTasks[taskName].Stop();
return true;
}
}
/// <summary>
/// 开始所有任务
/// </summary>
public void StartAll()
{
foreach (var item in this.DownTasks.Values)
{
item.StartAsync();
}
}
/// <summary>
/// 暂停所有任务
/// </summary>
public void PauseAll()
{
foreach (var item in this.DownTasks.Values)
{
item.Pause();
}
}
/// <summary>
/// 停止所有任务
/// </summary>
public void StopAll()
{
foreach (var item in this.DownTasks.Values)
{
item.Stop();
}
}
/// <summary>
/// 获取所有任务的信息
/// </summary>
/// <returns>任务信息数组</returns>
public string[] GetAllTaskNews()
{
string[] names = new string[this.DownTasks.Count];
for (int i = 0; i < this.DownTasks.Count; i++)
{
string key = this.DownTasks.ElementAt(i).Key;
names[i] = $"{i} - {key},下载速度:{this.DownTasks[key].Speed}\\s,下载进度:{this.DownTasks[key].Progress}%";
}
return names;
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。