资源简介
【版本已更新:http://download.csdn.net/source/2632090】
(说明:这是一个输出DLL的项目,需要在其他项目添加引用使用,如果要直接运行,请自行添加入口函数)
支持多个下载任务,分块多线程下载,断点续传。
(对比上个版本,完成了遗留的功能,修改了事件触发过程及处理方式,重新整理了代码及注释)
内含两个窗体,可视为演示程序。
DownloadForm 下载窗体,含相关事件处理及交互控制
TestForm1 调用DownloadForm下载测试
Events.txt 描述事件触发及处理流程
希望写的能看懂:
一般实时的事件需要在当前子线程处理;而涉及到线程控制的事件(如结束下载线程),为了确保事件处理能正常执行,则才采用主线程代理的方式处理。
这种代理方式是由于系统中直接操作线程引发的,如果改用系统线程池的话,可以重新定制处理流程。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Text;
namespace DownloadMag
{
#region 序列化存储:下载任务列表
///
/// 下载任务列表
/// 用于序列化存储任务信息
///
public class DTaskDataList
{
public DTaskDataList()
{
m_TaskDataList = new List();
}
[System.xml.Serialization.xmlArrayItem(“TaskList“ typeof(DTaskData))]
private List m_TaskDataList;
public List TaskDataList
{
get { return m_TaskDataList; }
set { m_TaskDataList = value; }
}
}
#endregion
#region 任务状态
///
/// 下载任务状态
///
public enum DTaskState
{
///
/// 停止
///
Stopped = 0
///
/// 已启动
///
Started
///
/// 等待
///
Waiting
///
/// 已完成
///
Completed
///
/// 失败
///
Failed
///
/// 取消
///
Aborted
}
///
/// 下载线程状态
///
public enum WorkThreadState
{
///
/// 停止
///
Stopped = 0
///
/// 已启动
///
Started
///
/// 已完成
///
Completed
///
/// 失败
///
Failed
}
#endregion
#region 事件相关定义
public class TaskInitializedEventArgs : EventArgs
{
///
///
///
/// 下载数据/文件大小
public TaskInitializedEventArgs(long length)
{
m_length = length;
}
private long m_length;
///
/// 下载数据大小
///
public long Length
{
get { return m_length; }
set { m_length = value; }
}
}
public class WriteToStreamEventArgs : EventArgs
{
///
///
///
/// 数据大小
public WriteToStreamEventArgs(long length)
{
m_length = length;
}
private long m_length;
///
/// 数据大小
///
public long Length
{
get { return m_length; }
set { m_length = value; }
}
}
public class TaskThreadErrorEventArgs : EventArgs
{
///
///
///
/// 捕获的异常
public TaskThreadErrorEventArgs(Exception erro
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6015 2008-05-12 12:53 DownloadMag\ClassLibrary.cs
文件 2380 2008-05-15 15:41 DownloadMag\CRC32.cs
文件 10063 2008-05-15 15:56 DownloadMag\Download.cs
文件 4626 2008-05-15 16:35 DownloadMag\DownloadMag.csproj
文件 911 2008-05-15 16:15 DownloadMag\DownloadMag.sln
..A..H. 90112 2008-05-15 16:36 DownloadMag\DownloadMag.suo
文件 27212 2008-05-15 15:49 DownloadMag\DTask.cs
文件 26218 2008-05-15 14:30 DownloadMag\DTaskConfig.cs
文件 1353 2008-01-14 15:20 DownloadMag\DTaskConfigData.cs
文件 4154 2008-05-15 15:52 DownloadMag\DTaskData.cs
文件 17426 2008-05-15 15:49 DownloadMag\DTaskMag.cs
文件 1529 2008-01-15 17:37 DownloadMag\EventProxy.cs
文件 3113 2008-05-12 10:42 DownloadMag\Events.txt
文件 17062 2008-05-15 16:32 DownloadMag\Forms\DownloadForm.cs
文件 25425 2008-05-15 16:32 DownloadMag\Forms\DownloadForm.Designer.cs
文件 18120 2008-05-15 16:32 DownloadMag\Forms\DownloadForm.resx
文件 10128 2007-11-07 14:10 DownloadMag\Forms\MsgBox.cs
文件 15414 2008-05-12 14:23 DownloadMag\Forms\MsgBox.Designer.cs
文件 47706 2007-11-07 14:10 DownloadMag\Forms\MsgBox.resx
文件 1786 2008-05-15 16:32 DownloadMag\Forms\TestForm1.cs
文件 3386 2008-05-15 16:28 DownloadMag\Forms\TestForm1.Designer.cs
文件 5814 2008-05-15 16:28 DownloadMag\Forms\TestForm1.resx
文件 1406 2005-08-03 09:36 DownloadMag\images\down.ico
文件 1406 2005-08-03 09:36 DownloadMag\images\ok.ico
文件 1406 2005-08-03 09:36 DownloadMag\images\point_blue.ico
文件 1406 2005-08-03 09:36 DownloadMag\images\point_cyan.ico
文件 1406 2005-08-03 09:36 DownloadMag\images\point_green.ico
文件 1406 2005-08-03 09:36 DownloadMag\images\point_red.ico
文件 1406 2005-08-03 09:36 DownloadMag\images\point_yellow.ico
文件 1406 2005-08-03 09:36 DownloadMag\images\right.ico
............此处省略13个文件信息
- 上一篇:C#多任务多线程组件源代码
- 下一篇:C#器Demo
评论
共有 条评论