前台:

一个按钮

后台:

private void button3_Click(object sender, EventArgs e)
        {
            //这样写只是让线程池启动了一个线程,没有利用多个线程来操作
            WaitCallback wait = new WaitCallback(DownLoadThreadPool);
            ThreadPool.QueueUserWorkItem(wait);
        }

private void DownLoadThreadPool(object ojb)
        {
            for (int i = 30000; i < 30020; i++)
            {
                try
                {
                    using (WebClient client=new WebClient())
                    {
                        client.DownloadFile(@"http://job.cnblogs.com/offer/" + i + "/", @"d:\move\" + i + ".html");  // 第一个是网上想要下载的地址,第二个是本地机的地址
                        //使用匿名委托的简写方式
                        this.Invoke(new Action(delegate()
                        {
                            this.textBox1.AppendText("第" + i + "个帖子已经下载完成\n");
                        }));
                    }
                }
                catch (Exception ex)
                { }
            }
            Action action = new Action(Msg1); 
            this.Invoke(action);
        }
        private void Msg1()
        {
            MessageBox.Show("下载完成");
        }

转载于:https://www.cnblogs.com/duanlinlin/p/3146126.html

利用线程池单线程下载网页信息相关推荐

  1. python爬虫利用线程池下载视频

    由于requests模块中,requests.get()是线程阻塞的,所有当有多个爬虫进行爬取时,那么单线程式爬虫是耗时比较长的,所以我们需要使用线程池,利用线程池来爬取耗时比较长的资源,这里我们使用 ...

  2. Python爬虫:使用线程池快速下载视频

    旁白:上一篇利用python爬取了虎牙星秀的图片,这一篇利用线程池对视频进行爬取. 文章目录 前言 一.为什么要使用线程池? 二.使用步骤 1.引入模块 2.创建文件夹 3.存储文件 4.完整代码 三 ...

  3. 利用脚本动态爬取网页信息

    利用脚本动态爬取网页信息 编译环境:Jupyter Notebook (Anaconda3) 调用的包:selenium,webdrive,webdriver_manager 文章目录 利用脚本动态爬 ...

  4. java 解析m3u8的实例_使用java线程池批量下载m3u8。合并mp4.

    使用java线程池批量下载m3u8合并mp4. 看了线程池的demo,然后就想下载文件试试. 代码未必规范,多多建议. 大家可以自行修改,满足自己的需求. 还需要深入学习一下线程池. 给俺个星星⭐,可 ...

  5. Spring线程池异步传递MDC信息

    目录 1. 什么是MDC 2. 引入MDC打印步骤 2.1 pom依赖 2.2 log4j2打印日志配置文件 3 步骤演示 3.1 单线程业务使用示例 postman查询示例 查询代码 查询日志 3. ...

  6. python线程池抓取网页数据

    因为最近朋友实验研究需要手动复制,粘贴www.chemsrc.com网页上的数据很繁琐,大致看了一下一共有4000多页,因此想到了用爬虫来爬取数据. 有了这个想法便来考虑试试 # 如何提取单个页面的数 ...

  7. Spring集成JavaMail并利用线程池发送邮件

    我们系统存在大量发送邮件的需求,项目使用的是Spring框架而JavaMail也能很好的跟Spring进行集成,由于发送邮件最好还是使用异步进行发送,所以这里就采用线程池+JavaMail进行邮件发送 ...

  8. 利用线程池为线程创建一个守护线程

    主线程: public class MainThread implements Callable {SimpleDateFormat sdf =new SimpleDateFormat("y ...

  9. python ping利用线程池获取在线设备

    python ping获取一个VLAN在线设备 myPyPingDevice.py """=== coding: UTF8 ===""" # ...

  10. c语言线程池源代码下载,C语言实现线程池(示例代码)

    /** * 线程池 * @author jimmy * @date 2016-5-14*/#include#include#include#include#include"pd_log.h& ...

最新文章

  1. jenkins自动化部署工具
  2. 这个算法网站,强推。
  3. 在ChemDraw中如何使用ChemACX
  4. Android SwipeRefreshLayout 官方下拉刷新控件介绍
  5. word2003如何设置护眼模式_连锁企业如何设置「单店盈利模式」?
  6. python3字典列表_python3入门(3)---列表、元组、字典、集合详解
  7. css隐藏滚动条、兼容
  8. Java中introduce方法_Java基础—继承
  9. 初学者python笔记(元组、字典、集合详解)
  10. 《Nmap渗透测试指南》—第7章7.10节扫描Web漏洞
  11. Boost Asio dispatch()与post()的区别
  12. 布朗大学计算机专业怎么样,Offer捷报 | 恭喜Z同学收获布朗大学计算机科学专业Offer!...
  13. xamarin使用oracle数据库,XamarinSQLite教程在Xamarin.Android项目中使用数据库
  14. catia逆向建模步骤_catia与逆向工程
  15. mybatis学习(二)
  16. 侯捷老师英中繁简术语对照表
  17. 如何设置最美的win11桌面(附隐藏任务栏方法)
  18. UE4中三维几何总结——几何体
  19. 通过这一篇文章就了解机器学习的主要内容和核心思想(包括一些算法思想总结)!!!
  20. 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1

热门文章

  1. 解决DEFINE_string(result_path, result, Path for results) NameError:name 'os' is not defined
  2. java rsync上传_Rsync自动同步工具
  3. java调用python脚本_python脚本估算Java线程池参数配置
  4. hive 列表去重_Hive企业级调优
  5. 7-8 猜数字 (20 分)
  6. Android 长按Button出现一个菜单
  7. idea安装2019
  8. .Net 数据缓存浅析
  9. (转) SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程
  10. Win8 下配置Java开发环境