利用线程池单线程下载网页信息
前台:
一个按钮
后台:
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
利用线程池单线程下载网页信息相关推荐
- python爬虫利用线程池下载视频
由于requests模块中,requests.get()是线程阻塞的,所有当有多个爬虫进行爬取时,那么单线程式爬虫是耗时比较长的,所以我们需要使用线程池,利用线程池来爬取耗时比较长的资源,这里我们使用 ...
- Python爬虫:使用线程池快速下载视频
旁白:上一篇利用python爬取了虎牙星秀的图片,这一篇利用线程池对视频进行爬取. 文章目录 前言 一.为什么要使用线程池? 二.使用步骤 1.引入模块 2.创建文件夹 3.存储文件 4.完整代码 三 ...
- 利用脚本动态爬取网页信息
利用脚本动态爬取网页信息 编译环境:Jupyter Notebook (Anaconda3) 调用的包:selenium,webdrive,webdriver_manager 文章目录 利用脚本动态爬 ...
- java 解析m3u8的实例_使用java线程池批量下载m3u8。合并mp4.
使用java线程池批量下载m3u8合并mp4. 看了线程池的demo,然后就想下载文件试试. 代码未必规范,多多建议. 大家可以自行修改,满足自己的需求. 还需要深入学习一下线程池. 给俺个星星⭐,可 ...
- Spring线程池异步传递MDC信息
目录 1. 什么是MDC 2. 引入MDC打印步骤 2.1 pom依赖 2.2 log4j2打印日志配置文件 3 步骤演示 3.1 单线程业务使用示例 postman查询示例 查询代码 查询日志 3. ...
- python线程池抓取网页数据
因为最近朋友实验研究需要手动复制,粘贴www.chemsrc.com网页上的数据很繁琐,大致看了一下一共有4000多页,因此想到了用爬虫来爬取数据. 有了这个想法便来考虑试试 # 如何提取单个页面的数 ...
- Spring集成JavaMail并利用线程池发送邮件
我们系统存在大量发送邮件的需求,项目使用的是Spring框架而JavaMail也能很好的跟Spring进行集成,由于发送邮件最好还是使用异步进行发送,所以这里就采用线程池+JavaMail进行邮件发送 ...
- 利用线程池为线程创建一个守护线程
主线程: public class MainThread implements Callable {SimpleDateFormat sdf =new SimpleDateFormat("y ...
- python ping利用线程池获取在线设备
python ping获取一个VLAN在线设备 myPyPingDevice.py """=== coding: UTF8 ===""" # ...
- c语言线程池源代码下载,C语言实现线程池(示例代码)
/** * 线程池 * @author jimmy * @date 2016-5-14*/#include#include#include#include#include"pd_log.h& ...
最新文章
- jenkins自动化部署工具
- 这个算法网站,强推。
- 在ChemDraw中如何使用ChemACX
- Android SwipeRefreshLayout 官方下拉刷新控件介绍
- word2003如何设置护眼模式_连锁企业如何设置「单店盈利模式」?
- python3字典列表_python3入门(3)---列表、元组、字典、集合详解
- css隐藏滚动条、兼容
- Java中introduce方法_Java基础—继承
- 初学者python笔记(元组、字典、集合详解)
- 《Nmap渗透测试指南》—第7章7.10节扫描Web漏洞
- Boost Asio dispatch()与post()的区别
- 布朗大学计算机专业怎么样,Offer捷报 | 恭喜Z同学收获布朗大学计算机科学专业Offer!...
- xamarin使用oracle数据库,XamarinSQLite教程在Xamarin.Android项目中使用数据库
- catia逆向建模步骤_catia与逆向工程
- mybatis学习(二)
- 侯捷老师英中繁简术语对照表
- 如何设置最美的win11桌面(附隐藏任务栏方法)
- UE4中三维几何总结——几何体
- 通过这一篇文章就了解机器学习的主要内容和核心思想(包括一些算法思想总结)!!!
- 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1
热门文章
- 解决DEFINE_string(result_path, result, Path for results) NameError:name 'os' is not defined
- java rsync上传_Rsync自动同步工具
- java调用python脚本_python脚本估算Java线程池参数配置
- hive 列表去重_Hive企业级调优
- 7-8 猜数字 (20 分)
- Android 长按Button出现一个菜单
- idea安装2019
- .Net 数据缓存浅析
- (转) SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程
- Win8 下配置Java开发环境