当前位置: 首页 > news >正文

关于网站建设的参考文献如何制作微信图文链接

关于网站建设的参考文献,如何制作微信图文链接,英文网站建设 论文,怎样在平台上发布信息推广目录 目录 1.作业内容 2.作业要求 3.主要思路 1#xff09;窗体和组件初始化 2#xff09;下载管理器实例化 3#xff09;按钮点击事件处理 4#xff09;窗体加载事件处理 5#xff09;下载消息处理 4.主要难点 1#xff09;多线程管理#xff1a; 2#xff09…目录 目录 1.作业内容 2.作业要求 3.主要思路 1窗体和组件初始化 2下载管理器实例化 3按钮点击事件处理 4窗体加载事件处理 5下载消息处理 4.主要难点 1多线程管理 2 UI更新 3 错误处理 4 资源管理 5 用户体验 5.不足及改进 参考  6.代码展示 代码仓库  7.运行结果 ​​​​​ 1.作业内容 通过c#实现一个基本的多线程文件下载器用于从一个文本文件中读取下载链接并启动多线程下载可以在Windows窗体应用程序中使用。同时也可以更新UI显示文件下载内容和进度情况。 并发下载网络连接... 下载过程图 下载情况 2.作业要求 请以博客方式提交作业博客内容需要对代码行进行讲解阐述设计的主要思路与难点。√请注意如果想达到博客网站如csdn的优质博文的质量分需要对博客进行详细描述。√提交方式为提交博客发布地址并附上本博文的质量分。√ 3.主要思路 由于核心代码已有本人只是在此基础上进行修改理解其核心原理和过程 1窗体和组件初始化 Form1() 构造函数初始化窗体并调用 InitializeComponent() 方法后者由WinForms设计器自动生成用于设置窗体上的控件。 public Form1(){InitializeComponent();} 2下载管理器实例化 DownLoadFile dlf new DownLoadFile();创建 DownLoadFile 类的实例该类负责管理下载任务。 DownLoadFile dlf new DownLoadFile(); 3按钮点击事件处理 - btnTest_Click当用户点击界面上的某个按钮时触发此事件。  - 读取文本文件 下载文件.txt 中的每一行每行包含一个文件名和一个URL它们通过 | 分隔。  - 对每行进行分割提取文件名和URL。  - 使用 Uri.EscapeUriString 对URL进行编码确保URL在传输过程中的安全性。  - 将文件下载存放路径设置为 dir 变量。  - 在列表视图 listView1 中为每个下载任务添加一个项并设置初始状态。  - 调用 dlf.AddDown 方法添加下载任务传入下载链接、存放目录、任务索引和索引的字符串表示。  - 调用 dlf.StartDown 开始下载任务。 private void btnTest_Click(object sender, EventArgs e){string[] lines File.ReadAllLines(D:\\table\\作业\\windows\\作业\\作业三\\DownLoadFile\\下载文件.txt);for (int i 0; i lines.Length; i){string[] line lines[i].Split(new string[] { | }, StringSplitOptions.RemoveEmptyEntries);if (line.Length 2){string path Uri.EscapeUriString(line[1]);string filename line[0];//string filename Path.GetFileName(path);string dir D:\\table\作业\windows\作业\作业三\DownLoadFile\文件下载存放处;ListViewItem item listView1.Items.Add(new ListViewItem(new string[] { (listView1.Items.Count 1).ToString(), filename, 0, 0, 0%, 0, 0, DateTime.Now.ToString(), 等待中, line[1] }));int id item.Index;dlf.AddDown(path, dir, id, id.ToString());}}dlf.StartDown();} 4窗体加载事件处理 - Form1_Load在窗体加载时设置下载器的线程数并注册下载过程中的消息处理事件 SendMsgHander。 private void Form1_Load(object sender, EventArgs e){dlf.ThreadNum 3;//线程数不设置默认为3dlf.doSendMsg SendMsgHander;//下载过程处理事件} 5下载消息处理 - SendMsgHander根据下载过程中的不同状态更新UI。  - DownStatus.Start下载开始时更新状态。  - DownStatus.GetLength获取文件长度时更新状态。  - DownStatus.End 和 DownStatus.DownLoad下载过程中和下载结束时更新进度、速度和剩余时间。  - DownStatus.Error下载出错时更新错误信息。 private void SendMsgHander(DownMsg msg){switch (msg.Tag){case DownStatus.Start:this.Invoke((MethodInvoker)delegate (){listView1.Items[msg.Id].SubItems[8].Text 开始下载;listView1.Items[msg.Id].SubItems[7].Text DateTime.Now.ToString();});break;case DownStatus.GetLength:this.Invoke((MethodInvoker)delegate (){listView1.Items[msg.Id].SubItems[3].Text msg.LengthInfo;listView1.Items[msg.Id].SubItems[8].Text 连接成功;});break;case DownStatus.End:case DownStatus.DownLoad:this.Invoke(new MethodInvoker(() {this.Invoke((MethodInvoker)delegate (){listView1.Items[msg.Id].SubItems[2].Text msg.SizeInfo;listView1.Items[msg.Id].SubItems[4].Text msg.Progress.ToString() %;listView1.Items[msg.Id].SubItems[5].Text msg.SpeedInfo;listView1.Items[msg.Id].SubItems[6].Text msg.SurplusInfo;if (msg.Tag DownStatus.DownLoad){listView1.Items[msg.Id].SubItems[8].Text 下载中;}else{listView1.Items[msg.Id].SubItems[8].Text 下载完成;}Application.DoEvents();});}));break;case DownStatus.Error:this.Invoke((MethodInvoker)delegate (){listView1.Items[msg.Id].SubItems[6].Text 失败;listView1.Items[msg.Id].SubItems[8].Text msg.ErrMessage;Application.DoEvents();});break;}} 4.主要难点 1多线程管理 正确地管理多个下载线程确保它们不会相互干扰同时高效地利用系统资源。 2 UI更新 在多线程环境中安全地更新UI因为UI控件只能通过创建它们的线程通常是主线程进行操作。这里使用了 Invoke 方法来确保在主线程上更新UI。 3 错误处理 在下载过程中可能会遇到各种错误如网络问题、文件写入权限问题等。我们需要能够处理这些错误并给用户适当的反馈。 4 资源管理 确保所有资源如文件流、网络连接在使用后都能正确关闭和释放防止资源泄露。 5 用户体验 提供清晰的进度指示和错误信息使用户能够了解下载状态和问题。 5.不足及改进 对下载文件的命名进行优化下载生成文件具有良好的可阅读性同时能对其后缀进行自动添加。 能否由用户控制下载哪几个文件而不是全部下载了。 参考  https://www.cnblogs.com/jianzhan/p/7137485.html 6.代码展示 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Text; using System.Windows.Forms; using Gac;namespace Demo {public partial class Form1 : Form{public Form1(){InitializeComponent();}DownLoadFile dlf new DownLoadFile();private void btnTest_Click(object sender, EventArgs e){string[] lines File.ReadAllLines(D:\\table\\作业\\windows\\作业\\作业三\\DownLoadFile\\下载文件.txt);for (int i 0; i lines.Length; i){string[] line lines[i].Split(new string[] { | }, StringSplitOptions.RemoveEmptyEntries);if (line.Length 2){string path Uri.EscapeUriString(line[1]);string filename line[0];//string filename Path.GetFileName(path);string dir D:\\table\作业\windows\作业\作业三\DownLoadFile\文件下载存放处;ListViewItem item listView1.Items.Add(new ListViewItem(new string[] { (listView1.Items.Count 1).ToString(), filename, 0, 0, 0%, 0, 0, DateTime.Now.ToString(), 等待中, line[1] }));int id item.Index;dlf.AddDown(path, dir, id, id.ToString());}}dlf.StartDown();}private void Form1_Load(object sender, EventArgs e){dlf.ThreadNum 3;//线程数不设置默认为3dlf.doSendMsg SendMsgHander;//下载过程处理事件}private void SendMsgHander(DownMsg msg){switch (msg.Tag){case DownStatus.Start:this.Invoke((MethodInvoker)delegate (){listView1.Items[msg.Id].SubItems[8].Text 开始下载;listView1.Items[msg.Id].SubItems[7].Text DateTime.Now.ToString();});break;case DownStatus.GetLength:this.Invoke((MethodInvoker)delegate (){listView1.Items[msg.Id].SubItems[3].Text msg.LengthInfo;listView1.Items[msg.Id].SubItems[8].Text 连接成功;});break;case DownStatus.End:case DownStatus.DownLoad:this.Invoke(new MethodInvoker(() {this.Invoke((MethodInvoker)delegate (){listView1.Items[msg.Id].SubItems[2].Text msg.SizeInfo;listView1.Items[msg.Id].SubItems[4].Text msg.Progress.ToString() %;listView1.Items[msg.Id].SubItems[5].Text msg.SpeedInfo;listView1.Items[msg.Id].SubItems[6].Text msg.SurplusInfo;if (msg.Tag DownStatus.DownLoad){listView1.Items[msg.Id].SubItems[8].Text 下载中;}else{listView1.Items[msg.Id].SubItems[8].Text 下载完成;}Application.DoEvents();});}));break;case DownStatus.Error:this.Invoke((MethodInvoker)delegate (){listView1.Items[msg.Id].SubItems[6].Text 失败;listView1.Items[msg.Id].SubItems[8].Text msg.ErrMessage;Application.DoEvents();});break;}}} }代码仓库  https://github.com/Tiansky9/sky.git 7.运行结果 下载过程图 下载情况
http://www.pierceye.com/news/335829/

相关文章:

  • 建站之家官网办公装修设计
  • 永康网站建设的公司wordpress 图片分类
  • 网站商务通弹出窗口图片更换设置wordpress4.9 多站点
  • 如何仿制一个网站注册商标设计
  • 网站建设属于什么岗位旅游网站设计模板
  • 自己做的网站怎么链接火车头采集软件开发模型是什么
  • 新网站怎么做才会被收录正品海外购网站有哪些
  • 广东手机网站建设品牌js制作网页计算器
  • 化隆网站建设公司学做网站多久
  • 网站域名如何查询上海室内设计公司哪家好
  • 电子书推送网站怎么做新做的网站如何
  • 网站建设图片怎么加水印电商平台网站建设功能介绍
  • 一个门户网站怎么做金坛网站建设哪家好
  • 大学网站建设图江苏廉政建设网站
  • 班级网站建设方案网页美工的设计要点
  • 微网站搭建流程做网站的广告语
  • 那个网站做外贸canvas做的网站
  • 学做视频的网站wordpress上传大附件
  • 怎么做网站卖产品黄埭网站建设
  • 娱乐网站 建站软件学校网站建设栏目
  • 做调研有哪些网站网站建设策划书
  • 旺道网站排名优化建设网站需要做的工作
  • 设计公司网站 唐山本地备份wordpress
  • 淘宝客网站建设多少钱app网站开发案例
  • vs2008不能新建网站个性手绘个人网站模板下载
  • 西安好的网站建设公司西安高端网站制作公司哪家好
  • 网站分享按钮网站运营建站优化专家
  • 网站微信建设运维经验分享用cms创建自己带数据库的网站和在本机搭建网站运行平台的心得体会
  • wordpress建站吧做网站接专线费用
  • c 做网站设计广东seo点击排名软件哪里好