进程用的是多线程下载,而且线程的数量不固定,随着时间的推移,线程数量会在1到10之间变动,如果控制到每个线程的下载速度,不但比较麻烦,还要经常做线程间的操作,容易出错,不知道有没有什么办法直接限制正个进程的下载速度,就像ADSL只由200K的速度,你怎么下就是200K的速度

解决方案 »

  1.   

    C# 下载有多少种模式 我现在使用的是HttpWebRequest
      

  2.   

    市场上所有限速软件目前为止都是驱动实现 基本在NDIS层
      

  3.   

    Receive的时候size指定小就收的少,由于下载一般都是面向连接的,你收东西的时候故意每次少收一点,对面想多发一点也没办法发出来,这样就控制了下载的速度。
      

  4.   

    QoS,听同事他们做过一个类似的东西,好像不难
      

  5.   

    事实上,调用 IpHlpApi.dll 的 GetIfTable API 可以轻易获得网络信息和网络流量。只是要在C#中实现还是比较复杂。先看看怎么定义该 API
    [DllImport("IpHlpApi.dll")]
            extern static public uint GetIfTable(byte[] pIfTable, ref uint pdwSize, bool bOrder);http://www.cnblogs.com/hades/articles/1037338.html