功能是这样的:
比如启用10个线程不断地循环从网上下载资源,但目前遇到的问题是,一些资源下载速度很慢,当下载一段时间后,线程都被这样的资源占用,导致整体下载速度变得很慢。
现在想设定超时操作,当一个资源下载用的时间超过限定(比如10分钟),就直接结束该下载线程,继续下个资源的下载超时操作应该怎么实现?还是老规矩,结贴之前来着有分

解决方案 »

  1.   

    按照字节方式下载,比如以4096个字节一个buffer循环下载,在循环条件中判断是否不想继续。
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/7a2f3ay4.aspx
    http://download.csdn.net/source/842318
      

  3.   


    bool IsTimeout = false; // 标志是否超时 
    byte[] buffer = new byte[1024]; 
    int read = 0; 
    DateTime dt = DateTime.Now; 
    do 

      read = wStream.Read(buffer,0,1024); 
      filestream.Write(buffer,0,read); 
      if ( ( DateTime.Now-dt ).Seconds > 5 ) // 判断超时
      { 
      IsTimeout = true; 
      break; 
      } 

    while(read>0)
      

  4.   

    呵呵 明白了  真是一语点醒梦中人啊
    我开始也以为要用timer呢
    原来如此简单感谢P哥  和bingo_至于Dobzhansky大大说的连接的健康度是个问题,
    不过对于我这没必要,本来获取的下载连接质量就参差不齐,对于一些大文件放弃掉也无所谓了结贴~~