首页 / C# / C#-用于下载页面的并行类
C#-用于下载页面的并行类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-用于下载页面的并行类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1016字,纯文字阅读大概需要2分钟。
内容图文
我有一个带有并行类的代码,可以从Web下载页面.由于我下载了约3000页,因此我想知道这是否是最好的方法.
Parallel.For(0, 3000, i =>
{
Console.WriteLine(i.ToString());
//HttpDownloader is my class for downloading
HttpDownloader ht = new HttpDownloader(s[i]);
string a = ht.GetPage();
Console.WriteLine(i.ToString());
});
之后,我运行2 func:pharsing(string html)and save()//保存到数据库
我如何通过Parallel做到?
而且,如果我想让它运行后台,我需要将其插入BackgroundWorker吗?
解决方法:
就像您已经在做的那样,任务并行库(TPL,并行来自何处??)模块是必经之路.但是,通过使用Parallel.ForEach而不是Parallel.For,您可以使事情更清晰:
var urls = new List<string> { "http://google.com", "http://yahoo.com" };
Parallel.ForEach(urls, url => {
using (var client = new WebClient())
{
var contents = client.DownloadString(url);
// parse contents
// add to database
}
});
进一步阅读,尤其是显示如何使用异步模式来节省线程(但不一定是速度),请参见:http://blogs.msdn.com/b/pfxteam/archive/2009/08/04/9857477.aspx
这是一本有用的文章,但我认为此时代码是性能和可读性之间的恰当平衡.
内容总结
以上是互联网集市为您收集整理的C#-用于下载页面的并行类全部内容,希望文章能够帮你解决C#-用于下载页面的并行类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。