我调用WebService下载东西,现在能控制请求连接的超时时间,我想问问,能不能控制下载的时间。
比如说,我下载了10分钟还没有下载完毕,就停止下载。抛个异常。
请求连接超时的控制:
if (objIar.AsyncWaitHandle.WaitOne(TimeSpan.FromMinutes(m_douTimeOut), false))
谢谢大家哦,帮帮忙哦。

解决方案 »

  1.   

    大致上可以这样计算,通过webResponse类来获得请求webRequest类的创建的连接,得到文件大小
    然后
    通过定义一个静态变量,使他每一秒加一,就可以知道下载了多少秒,
      

  2.   

    if (objIar.AsyncWaitHandle.WaitOne(TimeSpan.FromMinutes(m_douTimeOut), false))
    {
       if(!objIar.IsCompleted)//如果等了m_douTimeOut分钟都还没完成,则结束异步且抛出异常
       {
          handler.EndInvoke(objIar);//假定你的委托或者webservice客户端代理的变量为handler
          throw new Exception();    //当然,如果是webservice客户端代理,则应该是EndInvoke.....
       }
    }
      

  3.   

    我用了定时器,超级的吃内存。timer1.Tick += new EventHandler(timer1_Tick);:::::::::::::::::::...................
      

  4.   

    晕.你自己用异步调用的啊.m_douTimeOut是等待时间,它等待异步的执行.
    你用定时器干什么?
      

  5.   

    OK , 我明白了,谢谢楼上的。因为我开始不明白超时的时间就是那个一步的等待时间。Sorry哈哈哈~