功能是这样的:
比如启用10个线程不断地循环从网上下载资源,但目前遇到的问题是,一些资源下载速度很慢,当下载一段时间后,线程都被这样的资源占用,导致整体下载速度变得很慢。
现在想设定超时操作,当一个资源下载用的时间超过限定(比如10分钟),就直接结束该下载线程,继续下个资源的下载超时操作应该怎么实现?还是老规矩,结贴之前来着有分
比如启用10个线程不断地循环从网上下载资源,但目前遇到的问题是,一些资源下载速度很慢,当下载一段时间后,线程都被这样的资源占用,导致整体下载速度变得很慢。
现在想设定超时操作,当一个资源下载用的时间超过限定(比如10分钟),就直接结束该下载线程,继续下个资源的下载超时操作应该怎么实现?还是老规矩,结贴之前来着有分
解决方案 »
- Mysql+.NET C# 插入和修改报错,异常详细信息: System.Data.Odbc.OdbcException:
- 请教有关常量和变量的表示 在线等...
- 如何实现datagridview内某列数值的相加?
- 关于label数据绑定
- 求这2个函数的C#原型
- 懒人高分求动态调用WebService类
- vs2005 中没有pictureBox这个控件这怎么回事
- 在ToolBar控件里有多个用户按钮,想点击按钮时,在Panel里显示用户控件出现问题
- 如何序列化多个对象 刚开始使用序列化
- 请教:操作xml,如何定义:SelectSingleNode(string XPath)中的XPath?
- 如何提取xml中的数据放到ArrayList中
- 【续dgv读取xml的问题】固定格式的dgv(含combobox,checkbox列)如何顺利显示!
http://download.csdn.net/source/842318
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)
我开始也以为要用timer呢
原来如此简单感谢P哥 和bingo_至于Dobzhansky大大说的连接的健康度是个问题,
不过对于我这没必要,本来获取的下载连接质量就参差不齐,对于一些大文件放弃掉也无所谓了结贴~~