1 Star 0 Fork 0

大魔法师/Simple Downloader

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
DownTaskManager.cs 3.29 KB
一键复制 编辑 原始数据 按行查看 历史
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;
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/the-great-magician/simple-downloader.git
[email protected]:the-great-magician/simple-downloader.git
the-great-magician
simple-downloader
Simple Downloader
master

搜索帮助