📦
c#文件下载多线程方式带进度条 - 免费下载
技术资料资源
文件大小:55 K
📋 资源详细信息
💡 温馨提示:本资源由用户 kent 上传分享,仅供学习交流使用。如有侵权,请联系我们删除。
📄 资源简介
c# 文件下载多线程方式带进度条 全中文注释
var request = WebRequest.Create(this.textBox1.Text);// 返回结果: 特定 URI 方案的 System.Net.WebRequest 子代。会根据//HttpWebRequest,还是FtpWebRequest,返回对应的实列。
//request.Proxy 设置那种代理。
var respones = request.GetResponse();//向服务器发送请求和返回服务器响应。
var strm = respones.GetResponseStream();//获取响应流。
Thread thread = null;//定义一个线程
thread = new Thread //创建一个线程
(
() =>
{
long totalLength = respones.ContentLength;//获取响应流的总长度。即获取文件有多大。
byte[] buffer = new byte[1024 * 1024];//定义1M内存缓冲空间。
long count = 0;//用于保存下载了多少字节数,长度。
int length = strm.Read(buffer, 0, buffer.Length);//通过流把数据放入缓冲(buffer:字节数组)(offset:buffer中的从零开始的字节偏移量)(count:要从当前流中最多读取的字节数)返回:读入缓冲区中的总字节数。
FileStream fsWrite=new FileStream(this.textBox2.Text,FileMode.Create);//创建文件流对象。
while (length != 0)//查看文件是否读完
{
fsWrite.Write(buffer, 0, length);//通过文件流把数组的1M缓存写入本地硬盘。
count += length;//保存已读文件长度。
int percentage =(int) (count * 100 / totalLength);//通过计算获取已读文件的百分比。
this.progressBar1.Value = percentage;//把百分比输出到进度条上
this.label2.Text = percentage.ToString() + "%";//显示百分比数值
length = strm.Read(buffer, 0, buffer.Length);//通过网络流读取字节。
}
MessageBox.Show("下载成功");
this.progressBar1.Value = 0;
strm.Close();//关闭网络响应流。
fsWrite.Flush();//文件流对象缓冲写入文件中。
fsWrite.Close();//关闭文件流
thread.Abort();//终止线程
}
);
thread.Start();//启动线程
💾
立即下载此资源
💡 提示:下载后请用压缩软件解压,推荐使用 WinRAR 或 7-Zip
📖 资源说明
📥 下载说明
- 下载需消耗 2积分
- 24小时内重复下载不扣分
- 支持断点续传
- 资源永久有效
📦 使用说明
- 下载后用解压软件解压
- 推荐 WinRAR 或 7-Zip
- 如有密码请查看说明
- 解压后即可使用
🎁 积分获取
- 上传资源获得积分
- 每日签到免费领取
- 邀请好友注册奖励
- 查看详情 →