哪里有winform多线程下载的实例?
http://dev.csdn.net/develop/article/64/64877.shtm 
 这个好像用不了
------解决方案--------------------/* .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient) 
  * Reflector 了一下 System.Net.WebClient ,重载或增加了若干: 
  * DownLoad、Upload 相关方法! 
  * DownLoad 相关改动较大! 
  * 增加了 DataReceive、ExceptionOccurrs 事件! 
  * 了解服务器端与客户端交互的 HTTP 协议参阅: 
  * 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! JSP/Servlet 实现! 
  * http://blog.csdn.net/playyuer/archive/2004/08/02/58430.aspx 
  * 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现!  
  * http://blog.csdn.net/playyuer/archive/2004/08/02/58281.aspx 
  */     
 namespace Microshaoft.Utils 
 { 
  using System; 
  using System.IO; 
  using System.Net; 
  using System.Text; 
  using System.Security; 
  using System.Threading; 
  using System.Collections.Specialized;    
  ///  <summary>  
  /// 记录下载的字节位置 
  ///  </summary>  
  public class DownLoadState 
  { 
   private string _FileName;   
   private string _AttachmentName; 
   private int _Position; 
   private string _RequestURL; 
   private string _ResponseURL; 
   private int _Length;   
   private byte[] _Data;   
   public string FileName 
   { 
    get 
    { 
     return _FileName; 
    } 
   }   
   public int Position 
   { 
    get 
    { 
     return _Position; 
    } 
   }   
   public int Length 
   { 
    get 
    { 
     return _Length; 
    } 
   }     
   public string AttachmentName 
   { 
    get 
    { 
     return _AttachmentName; 
    } 
   }   
   public string RequestURL 
   { 
    get 
    { 
     return _RequestURL; 
    } 
   }   
   public string ResponseURL 
   { 
    get 
    { 
     return _ResponseURL; 
    } 
   }     
   public byte[] Data 
   { 
    get 
    { 
     return _Data; 
    } 
   }   
   internal DownLoadState(string RequestURL, string ResponseURL, string FileName, string AttachmentName, int Position, int Length, byte[] Data) 
   { 
    this._FileName = FileName; 
    this._RequestURL = RequestURL; 
    this._ResponseURL = ResponseURL; 
    this._AttachmentName = AttachmentName; 
    this._Position = Position; 
    this._Data = Data; 
    this._Length = Length; 
   }   
   internal DownLoadState(string RequestURL, string ResponseURL, string FileName, string AttachmentName, int Position, int Length, ThreadCallbackHandler tch) 
   { 
    this._RequestURL = RequestURL; 
    this._ResponseURL = ResponseURL; 
    this._FileName = FileName; 
    this._AttachmentName = AttachmentName; 
    this._Position = Position; 
    this._Length = Length; 
    this._ThreadCallback = tch; 
   }   
   internal DownLoadState(string RequestURL, string ResponseURL, string FileName, string AttachmentName, int Position, int Length) 
   { 
    this._RequestURL = RequestURL; 
    this._ResponseURL = ResponseURL; 
    this._FileName = FileName; 
    this._AttachmentName = AttachmentName; 
    this._Position = Position; 
    this._Length = Length; 
   }