http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3125|回复: 4

[其他] 如何解决多线程访问网页【附源码】

[复制链接]
发表于 2014-4-8 20:54:45 | 显示全部楼层 |阅读模式
本帖最后由 marcofly 于 2014-4-8 20:58 编辑

需求:想写个多线程访问网页的小工具。
比如:定义同时开辟的线程数量为10。要访问的网页数量为500条。
当前的思路:
使用for循环开辟10个线程:
[C#] 纯文本查看 复制代码
 for(int threadNum = 0;threadNum < 10;threadNum++)
            {
                Thread td = new Thread(new ParameterizedThreadStart(tdStart));
                td.IsBackground = true;
                td.Start(string.Empty);
            }

在tdStart委托函数中,通过一个while循环,每次从一个list中读取要访问的url,然后访问网页即可
代码:
[C#] 纯文本查看 复制代码
private void tdStart(object obj)
        {
            while (curNums < listUrls.Count)
            {
                string url = string.Empty;
                lock(listUrls){
                    url = listUrls[curNums];
                    curNums++;
                }
                HttpHelper http = new HttpHelper();
                HttpItem item = GetHttpItem(url);
                HttpResult result = http.GetHtml(item);
                ListViewItem lvi = lvUrls.Items[curNums];
                lvi.SubItems[2].Text = "+完成"+curNums.ToString();
            }
        }
但是在运行的时候会报错,而且是按照顺序执行的(并没有体现多线程访问的随机性)
C#多线程方面接触不多,希望大家帮忙解惑下,thanks

完整的代码附件【包含测试网址】: 多线程访问网页.rar (50.35 KB, 下载次数: 57)


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-4-8 21:37:03 | 显示全部楼层
 楼主| 发表于 2014-4-8 22:31:13 | 显示全部楼层
站长苏飞 发表于 2014-4-8 21:37
http://www.sufeinet.com/thread-3556-1-1.html

飞哥,你给的这个好像跟我的需求不是很搭啊。
我的这个例子,运行的时候遇到的问题你给的那篇文章中并没有出现呢
发表于 2014-4-9 08:15:29 | 显示全部楼层
ListViewItem lvi = lvUrls.Items[curNums];
                lvi.SubItems[2].Text = "+完成"+curNums.ToString();
你直接这样写在一定程序上是会报错的,需要用委托,我发给你的文章是使用方法,另外你根本也不没有写随机的方法啊,怎么可能会随机呢,我第一次听说多线程有随机性。
发表于 2014-4-9 14:01:38 | 显示全部楼层
線程會隨機?第一次聽
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 04:05

© 2014-2021

快速回复 返回顶部 返回列表