• 大小: 71KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-11
  • 语言: C#
  • 标签: 源码  编程资源  

资源简介

【版本已更新: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个文件信息

评论

共有 条评论